UTF8 MySQL problèmes sur les Rails - les problèmes d'encodage en utf8_general_ci

J'ai une mise en scène Rails site qui est en cours d'exécution sur MySQL 5.0.32-Debian.

Sur ce site, toutes mes tables sont en utilisant utf8 /utf8_general_ci encodage.

À l'intérieur de cette base de données, j'ai des données qui ressemble à ceci:

mysql> select * from currency_types limit 1,10;
+------+-----------------+---------+
| code | name            | symbol  |
+------+-----------------+---------+
| CAD  | Canadian Dollar | $       |
| CNY  | Chinese Yuan    | å…ƒ     |
| EUR  | Euro            | €     |
| GBP  | Pound           | £      |
| INR  | Indian Rupees   | ₨     |
| JPY  | Yen             | ¥      |
| MXN  | Mexican Peso    | $       |
| USD  | US Dollar       | $       |
| PHP  | Philippine Peso | ₱     |
| DKK  | Denmark Kroner  | kr      |
+------+-----------------+---------+

Voici la question que je vais avoir

Sur la mise en scène (avec la db et les Rails site en cours d'exécution sur le système debian), les caractères de symboles apparaissent correctement lors de l'affichage de Rails. Par exemple, le Yuan Chinois apparaît comme 元 dans mon navigateur, pas å...ƒ car il montre à l'intérieur de la base de données.

Quand je télécharger ces données vers mon local OS X machine de développement et exécuter la db et les Rails en local, je vois la représentation de l'intérieur de la DB (å...ƒ) sur mon navigateur, pas le personnage 元 que je vois dans la mise en scène.

De débogage j'ai fait

J'ai assuré tous les en-têtes Content-Type sont de retour comme de l'utf-8 à partir de chaque serveur (local, la mise en scène).

Mon serveur mysql local et le serveur de transit sont à la fois le programme d'installation pour l'utilisation de l'utf-8 comme le jeu de caractères par défaut. Je suis à l'aide de "set names 'utf8'" avant de me faire des appels.

Je peux même me connecter à ma base de données intermédiaire de mes OS X Rails de l'hôte, et je vois encore les personnages å...ƒ représentant le yuan. Je devine alors, peut-être il ya un problème avec mon mysql client local, mais je ne peux pas comprendre ce qu'est la question.

Peut-être cela peut donner un indice

Pour le rendre encore plus confus, si je colle le caractère 元 dans la db sur ma machine locale, je vois que dans le navigateur web de l'amende. --- POURTANT, si je colle le même personnage dans ma mise en scène db, je en obtenir un ? marque à sa place sur la page de ma mise en scène Rails site.

Aussi, localement sur mes OS X rails de la machine si j'utilise "set names 'latin1'" avant mes requêtes, tous les caractères de revenir correctement. J'ai eu ces tables comme latin1 avant - serait-ce la question?

Quelqu'un s'il vous plaît aidez-moi ici, je vais fou à essayer de comprendre ce qui est mal!

InformationsquelleAutor Subimage | 2008-12-06