顯示具有 JSON 標籤的文章。 顯示所有文章
顯示具有 JSON 標籤的文章。 顯示所有文章

Solve the json encoding problem of Chinese characters in Java

今天想說要把資料從資料庫中擷取出來顯示在Android的使用者介面上
但因為我是使用php對MySQL做查詢
再將查詢的結果用陣列encode成json格式,再傳回Android
然後我有一個習慣就是我會先在Eclipse的console面板的log中先看傳回什麼東西XD
例如
Log.e("result", json)
於是就看到我的log跑出一堆很奇怪的訊息,類似
\u6211\u662f\u5e25\u54e5
就像這樣,每個都有\u開頭
後來花了一點時間查了一下資料,了解了這原來就是所謂的萬國碼(Unicode)
然後其實也不用花費時間在轉碼上焦頭爛額......因為
就算log顯示的是那樣,Java在輸出(print、TextView)的時候還是會自動轉碼回去
log的時候會產生這樣的結果,是因為json在encode的過程中會將中文自動轉碼
保險一點的話還是可以在語法中加入JSON_UNESCAPED_UNICODE
json_encode($string, JSON_UNESCAPED_UNICODE);
這是php版本5.4以後才有的功能
如此一來json在encode的過程中就不會強迫轉碼囉

References