2015-08-09 2 views
7

Je reçois des "encodages de caractères incompatibles: CP850 et UTF-8" lors de l'affichage du symbole £ sur mon application ramaze. Comment puis-je me débarrasser de cette erreur? J'ai la balise meta UTF-8 dans mon tag de tête.Je reçois "encodages de caractères incompatibles: CP850 et UTF-8" lors de l'affichage du symbole £ sur mon application Ramaze

Cela se produit lorsque je tape le symbole £ avec le clavier. Regardez.

encoding error

J'ai mis le code suivant dans mon fichier rubis et il n'a pas résolu le problème.

# encoding: UTF-8 
Encoding.default_external = 'utf-8' 
Encoding.default_internal = Encoding::UTF_8 
+0

Pourquoi quelqu'un vote pour fermer cette question? – desbest

+0

Donc vous avez déjà ceci: '# encoding: UTF-8' sur votre fichier ruby? –

+0

Pour émuler le problème d'encodage sur n'importe quel système (ou tester le correctif), vous devez simplement définir l'encodage sur autre chose que UTF-8 lors de l'exécution de Ruby: 'ruby -F US-ASCII mon_script.rb' Essayez ceci et laissez moi savoir! –

Répondre

4

Essayez de forcer l'encodage à voir si cela fait disparaître le problème:

your_string.force_encoding(::Encoding::UTF_8) 

Si elle le fait, plongez dans votre application et repérer ce qui est mauvais réglage du codage, où et pourquoi .

Il s'agit peut-être d'une page Web ou d'un serveur, car la page que vous diffusez est affichée en tant que US-ASCII en raison d'un en-tête. Ou le serveur est démarré avec un codage autre que UTF-8. Ou quelque chose d'autre à cet effet. Votre script se termine avec une donnée externe qui n'est pas UTF-8.

+0

Votre ligne de code ne fonctionne pas. J'ai essayé cette réponse mais cela n'a pas fonctionné car je n'ai pas la variable 'LC_ALL' définie sur mon ordinateur. http://stackoverflow.com/questions/5908774/set-global-default-encoding-for-ruby-1-9/17616076#17616076 – desbest

1

Problème de Windows? Essayez d'utiliser Iconv:

Iconv.conv('utf-8', "WINDOWS-1253", X)