2010-10-21 5 views
4

J'ai un contrôleur de rails qui répond à JSON avec un mauvais codage. Le site est correctement configuré avec le codage UTF-8 et la base de données. Le texte de ma base de données est bien formaté, mais dans la réponse JSON, tous les caractères spéciaux sont définis sur \ ufffd. Comment puis-je résoudre le problème?Rails Codage de réponse Json

+0

Comment extrayez-vous les données de la base de données? Cela vous semble-t-il correct avant de l'encoder en JSON? Avez-vous défini 'encoding: utf8' dans votre' database.yml'? – bobince

+0

oui. la base de données est utf8, le codage: utf8 est correct, les chaînes sont correctement stockées dans le db (je les ai vérifiées avec phpmyadmin). le problème est la façon dont les rails les encodent avec la méthode to_json. – pasine

+0

Quelle version de rubis et de rails utilisez-vous? – rwilliams

Répondre

5

Tout le monde fonctionnant sur Ruby 1.9.x et utilisant MySQL, devrait utiliser la gem mysql2. Il force l'utilisation de UTF-8 et convertit automatiquement en UTF-8 si nécessaire.

+0

cela a fait l'affaire! Merci beaucoup! – pasine

+0

Cela n'a pas fonctionné pour moi. Je cours Sqlite et les caractères sont écrits/lus à partir de la base de données correctement, cependant en utilisant la méthode to_json tous les caractères spéciaux (tels que 'åäöячщ') se transforme en \ ufffd – Mika