PHP json_encode 處理漢字爲空 服務端JSON漢字編碼

PHP   json_encode 處理漢字爲空  服務端JSON漢字編碼
json

緣由是這個漢字是gbk編碼 , json只能處理utf-8的編碼 ,因此要先將數據轉碼數組

用Extjs接收PHP服務端返回的Json結果時,發現只要是漢字(從SQLServer取得)都是空字符,非常納悶。後來看 json_encode的文檔才知道,它只能編碼UTF-8的字符。這個問題就是返回的字符是GB2312,怎麼變爲UTF-8,而且最好是將整個數組進 行UTF-8的轉換。通過搜索有如下代碼完成:編碼

//處理數組編碼格式
code

function td_iconv($data, $charset_from, $charset_to) {     if(strtolower($charset_from) == "gb2312") {         $charset_from = "gbk";     }     if(strtolower($charset_from) == strtolower($charset_to)) {         return $data;     }             if(is_array($data)) {         foreach($data as $k => $v) {             if(is_array($v)) {                 $data[$k] = td_iconv($v,$charset_from,$charset_to);             }else {                 $data[$k] = is_string($v) ? mb_convert_encoding($v, $charset_to, $charset_from) : $v;             }         }     }else {     if(is_string($data))           $data = mb_convert_encoding($data, $charset_to, $charset_from);     }     return $data; }
相關文章
相關標籤/搜索