2013-06-05 19 views
0

我使用收集utf8_general_ci爲我場LANG_NAME將在任何語言專賣店翻譯後的數據。當我從獲取數據庫中的數據和JSON進行編碼,輸出是這樣的"lang_name":"\u0905\u0902\u0917\u094d\u0930\u0947\u091c\u093c\u0940"而其在數據庫值अंग्रेज़ी如何將utf8_general_ci編碼數據顯示到json中?

我怎樣才能得到實際的價值,因爲它被保存在JSON格式的數據庫?

+4

這是JSON編碼UTF-8字符串後的預期結果。我不確定我明白問題是什麼?如果你想解碼,使用'json_decode()' –

+0

正如Pekka所說,完全有效的輸出。實際上支持json的任何應用程序都知道如何處理它。 – Wrikken

+0

看起來有人必須閱讀JSON的工作原理。 –

回答

1

沒有什麼錯\uxxxx在你的JSON字符串,因爲它是JSON自己的編碼特殊字符的方式,例如UTF-8。

當你使用正確的JSON解碼方法的字符串將好吧再次。

自PHP 5.4.0你能夠實際輸出的特價charaters將JSON字符串,在編碼時,使瀏覽器可以支持如當顯示特殊字符UTF-8。

使用:

$json = json_encode($my_utf8_meshup, JSON_UNESCAPED_UNICODE);

的JSON_UNESCAPED_UNICODE標誌,可以確保字符被轉換爲它們的等效UTF8編碼的字符。

有可能是沒有辦法可以使用,因爲你的json_encode的inconv()參數或mb_convert_encoding()任何冷混合做到這一點()(前PHP 5.4.0)將最終結束了它映射到\uxxxx字符轉換。再次,這對JSON(交通)很有用,但可能不是人類可讀的。