預設情況下php的 json_decode 方法會把特殊字元進行轉義,還會把中文轉為unicode編碼形式。
這使得資料庫檢視文字變得很麻煩。所以我們需要限制對於中文的轉義。
對於php5.4+版本,json_decode函式第二個引數,可以用來限制轉義範圍。
要限制中文,使用json_unescaped_unicode引數。
json_encode($a, json_unescaped_unicode);
對於php5.3版本,可以先把ascii 127以上的字元轉換為html數值,這樣避免被json_decode函式轉碼
function my_json_encode($arr)
array_walk_recursive($arr, function (&$item, $key) );
return mb_decode_numericentity(json_encode($arr), array (0x80, 0xffff, 0, 0xffff), 'utf-8');
在編碼過程中、經常會用到json_encode來處理中文、但是、出現乙個問題、中文都會被轉碼、變為」 \u**** 」的格式、如何避免被轉碼、
1:php的版本為5.4以上;
echo json_encode( '中文' ); // "\u4e2d\u6587"
echo json_encode( '中文', json_unescaped_unicode ); // "中文"
2:先把漢字urlencode轉碼、在json_encode; 然後urldecode解碼;
echo $con = '中文'; // 中文
echo $con = urlencode( $con ); // %e4%b8%ad%e6%96%87"
echo $con = json_encode( $con ); // %e4%b8%ad%e6%96%87"
echo $con = urldecode( $con ); // "中文"
json encode轉義中文問題
預設情況下php的 json decode 方法會把特殊字元進行轉義,還會把中文轉為unicode編碼形式。這使得資料庫檢視文字變得很麻煩。所以我們需要限制對於中文的轉義。對於php5.4 版本,json decode函式第二個引數,可以用來限制轉義範圍。要限制中文,使用json unescaped...
json encode轉義問題
2.實踐 對於處理字串中本來就包含雙引號就使用中文雙引號,防止報錯 a 明月幾時有 蘇州 n把酒問青天 n 注意雙引號 echo unicode json encode a,json unescaped unicode n echo all json encode a,json unescaped ...
PHP中json encode中文編碼的問題
php的json擴充套件自帶的json encode函式,如果對含有中文的字元進行編碼時,會自動轉換成unicode編碼。a array city 北京 abcd天津 echo json encode a n debian test server home php php test1.php 現在有...