2010-07-26 9 views
3

Je lis 'Agile Web Development avec Rails.3rd'. Lorsque vous terminez l'application de dépôt, je saisis un caractère chinois comme nom d'utilisateur. Mais j'ai eu cette erreur, il semble que cela a quelque chose à voir avec Ruby1.9Comment gérer les 'encodages de caractères incompatibles: exception ASCII-8BIT et GBK'?

Mon environnement est window xp, Ruby1.9 Rails 2.3.8 et sqlite3.

Voici le détail de cette erreur:


Affichage app/views/layouts/store.html.erb où la ligne n ° 43 soulevé:

codages de caractères incompatibles: ASCII 8 bits et GBK

Extrait source (autour de la ligne n ° 43):

40: <% si le flash [: avis] -%>

41: <% = h flash [: avis]%>

42: <% fin -%>

43: <% = rendement: mise en page%>


Toute personne peut m'aider à résoudre ce problème?

+0

Ce serait bien si vous pouviez fournir la trace complète de la pile. Ensuite, nous pourrions vous aider à résoudre le problème correctement. – thomasfedb

Répondre

2

J'ai découvert que l'ajout

# encoding: utf-8 

au début est beaucoup plus simple (et peut-être plus élégant)

0

Vous pourriez essayer de mettre dans votre fichier environment.rb:

Encoding.default_internal = Encoding.find("UTF-8") 

Vous pourriez également être aggrave le problème avec le codage de la console incorrecte dans Windows. Assurez-vous qu'il est défini sur Unicode.

+0

Il semble que cela fonctionne. J'ai une erreur nulle lorsque j'ajoute Encoding.default_internal = Encoding.find ("UTF-8") dans mon fichier environment.rb. – Chris

+0

Vous voulez dire que ça ne marche pas? Si c'est le cas, donnez-moi un chèque;) –

+0

Cela ne fonctionne pas. J'ai cette erreur "Erreur de serveur interne Vous avez un objet nul lorsque vous ne l'attendiez pas! Vous avez peut-être attendu une instance de Array.L'erreur s'est produite lors de l'évaluation nil.each" – Chris

0

il est ridicule, mais j'eu le même problème jusqu'à ce que

je trouve que je viens d'avoir cyrillique « C » dans l'une des classes nom%)

il est donc peut-être de bons conseils pour vérifier si vous ne pas utiliser quelque chose comme c, a, o, p etc d'une autre disposition du clavier (s)