2010-10-21 75 views
4

我有一个rails控制器,它使用错误的编码来响应JSON。 该网站使用UTF-8编码和数据库正确设置。 我的数据库中的文本格式良好,但在JSON响应中,所有特殊字符均设置为\ ufffd。 我该如何解决这个问题?Rails Json响应编码

+0

如何从数据库中获取数据?在JSON编码之前它看起来没问题吗?你在'database.yml'中设置了'encoding:utf8'吗? – bobince 2010-10-30 20:57:20

+0

是的。数据库是utf8,编码:utf8是正确的,字符串正确存储在数据库(我用phpmyadmin检查了他们)。问题是rails用to_json方法编码它们的方式。 – pasine 2010-10-31 13:39:19

+0

你使用的是什么版本的ruby和rails? – rwilliams 2010-10-31 15:03:58

回答

5

在Ruby 1.9.x上运行并使用MySQL的每个人都应该使用mysql2 gem。 它强制使用UTF-8并在需要时自动转换为UTF-8。

+0

这个伎俩!非常感谢! – pasine 2010-11-03 18:03:48

+0

这不适合我。我正在运行Sqlite,字符是从数据库中正确写入/读取的,但是在使用to_json方法时,所有特殊字符(如'åäöячщ')变成\ ufffd – Mika 2011-08-09 10:43:26