2010-10-21 99 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