json encode轉義中文問題

2021-09-09 05:57:46 字數 986 閱讀 1772

預設情況下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 現在有...