色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

php5.2 Json不能正確處理中文、GB編碼的解決方法

php5.2新增的json功能是非常受歡迎的,但是經過測試發現,
json_encode對中文的處理是有問題的,
1.不能處理GB編碼,所有的GB編碼都會替換成空字符.
2.utf8編碼的中文被編碼成unicode編碼,相當于Javascript的escape函數處理的結果.
復制代碼 代碼如下:
/*

為了能正確使用json,首先我們就應該在編碼上采用utf8編碼,然后再對json_encode的返回結果稍加處理就可以得到正確的結果了。
我寫了一個簡單的類,將這兩個函數包裝了一下,
**/
class Json{
public static function encode($str){
$code = json_encode($str);
return preg_replace("#///u([0-9a-f]+)#ie", "iconv('UCS-2', 'UTF-8', pack('H4', '//1'))", $code);
}

public static function decode($str){
return json_decode($str);
}
}
//使用的時候

Json::encode($code);
Json::decode($code);
/**這樣可以正確處理utf8編碼的中文了。

PS:對于GB編碼的中文,我們可以在編碼時先轉成UTF8編碼,再進行編碼,解碼的時候再進行一個utf8 -> gb的轉換就可以了。
另外一般json_encode的結果我們是返回到客戶端來使用,我們其實還可以用Javascript的unescape函數來對unicode編碼的中文進行解碼,從而還原成正確的中文。

或者用:$title = mb_convert_encoding($title, 'HTML-ENTITIES', $this->_outCharset);//任意編碼下都正常顯示
********/

php技術php5.2 Json不能正確處理中文、GB編碼的解決方法,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 嫩江县| 阿图什市| 白山市| 根河市| 堆龙德庆县| 育儿| 大石桥市| 永清县| 宁强县| 墨脱县| 桓台县| 土默特右旗| 赤水市| 三门峡市| 东乌珠穆沁旗| 镇安县| 姜堰市| 出国| 城口县| 博野县| 茶陵县| 夏河县| 改则县| 浪卡子县| 鄂伦春自治旗| 玉溪市| 登封市| 微山县| 福安市| 南汇区| 连南| 甘谷县| 六枝特区| 泸州市| 涿鹿县| 南宫市| 南昌县| 靖西县| 普安县| 股票| 军事|