[PHP] 防止 json_encode 把中文轉成 Unicode

因為串接其他平台,我會把其他平台回傳的一部份資料 json_encode 之後存進資料庫,可是最近要用 phpMyAdmin 進行查詢時發現中文都被轉成 Unicode,造成查詢上的困難,而且也沒辦法直觀的看到資料內容。

對於我這種沒有 UI 界面會死的工程師來說超級麻煩,所以只好查一下有沒有辦法可以不要把中文轉成 Unicode,沒想到還真的有而且還滿簡單的。

json_encode 可以在第二個參數指定常數 JSON_UNESCAPED_UNICODE,他會「以字面編碼多字節 Unicode 字符」,我們可以透過以下範例看看效果。
$array = ['我是中文'];

echo json_encode($array);
echo json_encode($array, JSON_UNESCAPED_UNICODE);


// output
["\u6211\u662f\u4e2d\u6587"]
["我是中文"]

留言