2010-05-17 65 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