溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

php轉(zhuǎn)義漢字的解決辦法

發(fā)布時間:2021-03-19 10:03:47 來源:億速云 閱讀:199 作者:小新 欄目:編程語言

小編給大家分享一下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è)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(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)容。

php
AI