我正在使用watir用以前用另一个程序擦掉的html代码填写一个文本字段。
我要传输的网站内容的语言是德语,所以涉及到一些特殊字符,这些字符在英语字母表中并不存在。
这些字符在html文件中正确显示,但是当转换到joomla安装的文本字段(我用这个程序将一个网站传输到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 })
)
不幸的是,这并没有解决问题,特殊字符现在显示为:
“=”=“=”
vergi\xe1t=vergi_t
新行显示为
我用下面的代码用mechanize刮了几页:
auszug=page.search ('/html/body/table/tr/td/table/tr[2]/td/table/tr/td[4]')
outputFile<<auszug
我希望你能帮助我,因为我只是一个在这里工作的志愿者,有一些编程经验。如果下周我还不能运行这个程序(这个编码的东西是唯一真正阻止我的东西),那么我将不得不使用copy+paste手动传输100页:/
谢谢你花时间和所有的努力!-)
塞巴斯蒂安
最佳答案
你试过转换成utf-8吗?
browser.test_field(:id => "text").value=(Iconv.conv(‘utf-8’, 'CP850', open('my-site.html') {|f| f.read})
关于ruby - 在Ruby中使用Watir填充text_field时的编码问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5974692/