我正在使用 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
我希望你能以某种方式帮助我,因为我只是一个在这里工作的志愿者,有一点编程经验。如果我下周还没有让这个程序运行(这个编码是唯一真正阻止我的东西),那么我将不得不使用复制+粘贴手动传输一百页:/
感谢您抽出时间和您为此付出的所有努力!:-)
塞巴斯蒂安