Dans ma page ERB, je veux afficher l'un des noms de pays configurés dans ce fichier CSV:Affichage UTF-8 dans ERB dit « codages de caractères incompatibles » (pas de base de données impliqués)
Suisse
Deutschland
日本
Voici la code qui charge le CSV dans config/initializers
:
require 'csv'
COUNTRIES = CSV.read("#{RAILS_ROOT}/config/countries.csv").flatten
Voici le code dans le ERB:
<%= "Country:" + COUNTRIES[id].to_s %>
I affiche bien quand id = 0 ou id = 1, mais quand id = 2 une erreur apparaît:
incompatible character encodings: ASCII-8BIT and UTF-8
... avec l'erreur de pointage à la ligne ERB ci-dessus.
Comment le réparer?
Aucune base de données impliquée, Ruby 1.9.2-p180. UTF-8 à partir des fichiers de localisation est affiché correctement.
Merci J'ai ajouté ', {encoding:" UTF-8 "}' comme vous l'avez suggéré et cela fonctionne! Etrangement, mon Encoding :: default_external() est # –
C'est étrange en effet, selon les docs cela devrait fonctionner automatiquement alors ... Si je l'essaye sur ma machine il se comporte correctement et l'analyse comme Chaînes UTF-8. Mais au moins, vous avez une solution qui fonctionne pour le moment :) – emboss