2010-10-25 177 views
0

我在PHP中使用JSON_ENCODE來輸出數據。 當它進入這個詞:Æther它輸出\u00c6therPHP Json_Encode奇怪的字符?

任何人都知道的方法,使JSON輸出字符還是我將不得不更改文本不有它的這個角色?

回答

5

這是字符的Unicode版本。 JavaScript應該正確處理它。你會注意到它之前的斜槓,這意味着它是一個轉義序列。 u表示這是一個unicode代碼點,十六進制數字表示實際字符。
有關更多信息,請參閱here

3

的指定工作。 RFC(http://www.ietf.org/rfc/rfc4627.txt)表示任意字符可能會被轉義,並且您的平均可打印字符可以用\uXXXX格式寫入。

任何JSON解析器無法理解這樣的字符轉義是不符合標準。致力於解決這個問題,而不是試圖哄騙PHP進行錯誤行爲。

(這法律把UTF-8字符轉換成JSON字符串沒有逃脫它,也有一些例外,但逃避任何可疑的安全的做法是明智的。)