2011-05-12 25 views
2

我正在使用Watir填充text_field,並使用之前與另一個程序一起刮過的html代碼。使用Watir在Ruby中填充text_field時的編碼問題

我轉交的網站內容的語言是德語,所以有一些特殊字符涉及到,這些字母不存在於英文字母中。

這些字符在html文件中正確顯示,但是當轉移到Joomla安裝的text_field(我正在使用此程序將網站轉移到Joomla)時,特殊字符無法正確顯示。

由於採用了用戶很大的幫助的結果,我已經能夠解決以前的問題,我現在transfering以下方法內容:

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 =黚 vergi \ xE1t =vergißt 和新的生產線被示出爲\ n

我刮下與機械化的頁面,使用以下代碼:

auszug=page.search ('/html/body/table/tr/td/table/tr[2]/td/table/tr/td[4]') 
outputFile<<auszug 

我希望你能以某種方式幫助我,因爲我只是一個志願者,在這裏有一些編程經驗。如果我在下週沒有收到這個程序(這種編碼的東西是唯一真正阻止我的),那麼我將不得不使用copy + paste手動傳輸一百頁:/

感謝您接受你投入的時間和所有努力! :-)

Sebastian

+0

「紅寶石」不應該全部大寫:http://stackoverflow.com/questions/6053240/how-should-i-capitalize-ruby/6053314#6053314 – 2011-05-19 12:50:42

回答

3

您是否嘗試轉換爲UTF-8?

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

這不會給我任何輸出不幸的是:/ – Sebastian 2011-05-13 07:55:10

+1

Dave答案中的參數順序是錯誤的。它應該是Iconv.conv('utf-8',encoding_of_file,...)。 – jarib 2011-05-21 14:29:19

+0

感謝jarib,我從一個從utf-8編碼的例子中盲目複製。我修好了它。 – 2011-05-23 16:55:12