使用Ruby中的Watir填充text_field时的编码问题

我正在使用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 =übervergi\ 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手动传输一百页:/

感谢您花时间和所有的努力! 🙂

塞巴斯蒂安

你尝试过转换为UTF-8吗?

 browser.test_field(:id => "text").value=(Iconv.conv('utf-8', 'CP850', open('my-site.html') {|f| f.read})