2010-05-17 7 views
1

Je commence tout juste à apprendre Ruby et j'ai un problème d'encodage;Problème d'encodage 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 

Le texte de sortie sont représentés comme ceci h├ © nsekj├ © tt quand il aurait été démontré que cette hønsekjøtt. J'utilise Ruby 1.8.7. Quelqu'un peut-il me diriger dans la bonne direction?

Répondre

2

Où visualisez-vous la sortie? Est-ce sur la console? Si oui, utilisez-vous Windows XP? J'ai trouvé que sur mon installation de Windows la console (je fais mon développement dans le terminal Git +) il ne montre pas correctement les caractères non-ascii. Sur le terminal sur mon Mac, ils montrent bien.

Si vous pensez qu'il s'agit du problème, écrivez la sortie dans un fichier, puis affichez ce fichier dans un éditeur de texte. Cela devrait vous montrer la sortie correcte.

+0

Oui, 'cmd.exe' ne produit pas les caractères correctement.En outre, si vous écrivez dans un fichier, assurez-vous que vous utilisez le bon codage – Geo

+0

Merci , qui a résolu le problème :-) – Fossmo

0

Essayez d'ajouter:

$KCODE ='UTF8' 

au début de votre script.

EDIT: semble que quelqu'un d'autre avait un problème d'encodage avant. Essayez de suivre les conseils donnés here

+0

J'ai essayé cela, et cela n'a pas aidé :-( – Fossmo