我正在使用Watir填写一个text_field,其中包含我之前用其他程序编写的html代码。
我正在转移的网站内容的语言是德语,因此涉及一些特殊字符,这些字符在英文字母表中不存在。
这些字符在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
我希望你能以某种方式帮助我,因为我只是一名志愿者,在这里有一些编程经验。如果我没有在下周运行这个程序(这个编码事情是唯一真正阻止我的东西),那么我将不得不使用copy + paste手动传输一百页:/
感谢您花时间和所有的努力! : - )
塞巴斯蒂安
答案 0 :(得分:3)
您是否尝试过转换为UTF-8?
browser.test_field(:id => "text").value=(Iconv.conv(‘utf-8’, 'CP850', open('my-site.html') {|f| f.read})