糯米文學吧

位置:首頁 > 計算機 > php語言

PHP中json-encode格式中文問題解決辦法

php語言2.93W

生活、工作、學習倘使都能自動,則教育之收效定能事半功倍。所以我們特別注意自動力之培養,使它關注於全部的生活工作學習之中。自動是自覺的行動,而不是自發的行動。自覺的行動,需要適當的`培養而後可以實現。以下是小編為大家搜索整理的PHP中json_encode格式中文問題解決辦法,希望對大家有所幫助!更多精彩內容請及時關注我們應屆畢業生考試網!

PHP中json-encode格式中文問題解決辦法

  1. 原因分析:

在存儲到數據庫時!MySQL 不會存儲 unicode 字符:

MySQL 僅支持從基本的多語種平面字符 (0×0000-0xFFFF)。請嘗試存儲一個同義詞相反:)

更新: MySQL 5.5.3 上 (其中尚未 GA), 支持補充字符如果您使用 UTF8MB4 編碼。

json_encode中文的時候,會把每個中文字符encode成“uxxxx”

而存進數據庫的時候,“”被屏蔽了,直接變成”uxxxx”

  2. 解決問題:

知道是什麼原因就好解決問題了,你可以選擇其他存儲方式;

或者再對症下藥進一步轉義””為“”,以保留””

我們的解決方案:

1. 避免json_encode將中文轉換unicode編碼.

PHP5.4版本,已經給Json新增了一個選項: JSON_UNESCAPED_UNICODE。加上這個選項後,就不會自動把中文編碼了。

$test = json_encode("深圳", JSON_UNESCAPED_UNICODE);

2. 先將中文字段urlencode,json_encode後,再用urldecode,也可以保證中文不會被轉成unicode。

$test =urldecode(json_encode(array('brief'=>urlencode('簡介'),'title'=>urlencode(標題)));

3. 進一步轉義””為“” 避免unicode中文前’'被mysql當成特殊字符去除