【发布时间】:2011-05-12 07:27:04
【问题描述】:
我正在使用 Watir 用我之前用另一个程序抓取的 html 代码填写一个 text_field。
我要传输的网站内容的语言是德语,因此涉及一些特殊字符,这些字符在英文字母表中不存在。
这些字符在 html 文件中可以正常显示,但是当转移到 Joomla 安装的 text_field 中时(我正在使用此程序将网站转移到 Joomla),特殊字符无法正常显示。
由于用户的大力帮助,我已经能够解决之前的问题,现在正在使用以下方法传输内容:
browser.text_field(:id => "text").value=(open('my-site.html') { |f| f.read })
结果是,特殊字符显示如下:
über => ³ber
vergißt => vergi▀t
wählen => wõhlen
geförderter => gef÷rderter
用户猜测这与我所在的代码页和编码问题有关。运行 DOS:chcp 输出 850。
他解决问题的尝试如下:
require 'iconv'
browser.text_field(:id => "text").value=(
Iconv.iconv('CP850', 'ISO-8859-1', open('my-site.html') { |f| f.read })
)
不幸的是,这并没有解决问题,特殊字符现在显示为例如: \x81ber = über vergi\xE1t = vergißt 新行显示为 \n
我使用以下代码使用 Mechanize 抓取页面:
auszug=page.search ('/html/body/table/tr/td/table/tr[2]/td/table/tr/td[4]')
outputFile<<auszug
我希望你能以某种方式帮助我,因为我只是一个在这里工作的志愿者,有一点编程经验。如果我下周还没有让这个程序运行(这个编码是唯一真正阻止我的东西),那么我将不得不使用复制+粘贴手动传输一百页:/
感谢您抽出时间和您为此付出的所有努力! :-)
塞巴斯蒂安
【问题讨论】:
-
"Ruby" 不应该全部大写:stackoverflow.com/questions/6053240/…
标签: ruby unicode encoding watir iconv