2010-05-17 70 views
1

我剛剛開始學習Ruby,並遇到編碼問題;Ruby編碼問題

require 'rubygems' 
require 'mechanize' 
agent = Mechanize.new 
agent.get('myurl.....') 
agent.page.search('#reciperesult a').each do |item| 
    c = Mechanize.new 
    c.get(item.attributes['href']) 
    puts c.page.search('#ingredients li').text 
end 

輸出文本顯示這樣h├©nsekj├©TT當它應該已經顯示出這樣的hønsekjøtt。我正在使用Ruby 1.8.7。任何人都可以指引我走向正確的方向嗎?

回答

2

你在哪裏查看輸出?它在控制檯上嗎?如果是這樣,你是否運行Windows XP?我發現在我的Windows設置中,控制檯(我在Git +終端上開發了它)沒有正確顯示非ascii字符。在我的Mac上的終端,他們顯示很好。

如果您懷疑這是問題,那麼將輸出寫入文件,然後在文本編輯器中查看該文件。這應該會顯示正確的輸出。

+0

是的,'cmd.exe'不能正確輸出字符,另外,如果你寫了一個文件,請確保你使用正確的編碼。 – Geo 2010-05-17 11:46:58

+0

謝謝,解決了這個問題:-) – Fossmo 2010-05-17 18:03:18

0

嘗試增加:

$KCODE ='UTF8' 

在腳本的開始。

編輯:似乎有人之前有一個編碼問題。嘗試按照給出的建議here

+0

我試過了,它沒有幫助:-( – Fossmo 2010-05-17 06:46:32