您好,登錄后才能下訂單哦!
小編給大家分享一下php轉(zhuǎn)義漢字的解決辦法,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
php轉(zhuǎn)義漢字的解決辦法:1、使用自定義的“function json_encode_ex($value)”方法實現(xiàn)中文不轉(zhuǎn)義;2、通過“JSON_UNESCAPED_UNICODE”選項實現(xiàn)不轉(zhuǎn)義;3、使用urldecode來解碼。
php實現(xiàn)json_encode()中文字符不轉(zhuǎn)義
在項目中,php提供的接口使用json_encode()函數(shù),在處理中文的時候, 中文都會被編碼成Unicode碼, 變成不可讀的, 類似”\u***”的格式,如果想漢字不進(jìn)行轉(zhuǎn)碼,這里提供三種方法
1.php版本在5.3及以下自己寫函數(shù)實現(xiàn)中文不轉(zhuǎn)義
function json_encode_ex($value) { if(version_compare(PHP_VERSION,'5.4.0','<')){ $str = json_encode($value); $str = preg_replace_callback( "#\\\u([0-9a-f]{4})#i", function($matchs) { return iconv('UCS-2BE', 'UTF-8', pack('H4', $matchs[1])); }, $str ); return $str; }else{ return json_encode($value, JSON_UNESCAPED_UNICODE); } } echo json_encode_ex($arr);
2.php版本5.4以上,json_encode()新增了一個選項,JSON_UNESCAPED_UNICODE 意思是json不要unicode編碼
echo json_encode($arr,JSON_UNESCAPED_UNICODE);
3.先把中文漢字進(jìn)行urlencode然后再使用json_encode,json_encode之后再次使用urldecode來解碼,這樣編碼出來的json數(shù)組中的漢字就不會出現(xiàn)unicode編碼了
$arr = array( 'key'=>urlencode("測試") ); $json = json_encode($arr); echo urldecode($json); //{"key":"測試"}
看完了這篇文章,相信你對“php轉(zhuǎn)義漢字的解決辦法”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。