首頁 >後端開發 >PHP問題 >php json_encode亂碼怎麼解決?

php json_encode亂碼怎麼解決?

青灯夜游
青灯夜游原創
2020-08-20 10:59:282867瀏覽

解決方法:1、設定json_encode()第二個參數的值為「JSON_UNESCAPED_UNICODE」即可;2.先把文字進行urlencode轉碼,再使用json_encode()編碼,接著進行urldecode解碼即可。

php json_encode亂碼怎麼解決?

推薦:《PHP影片教學

json_encode()用於對變數進行JSON編碼;成功則傳回JSON 編碼的字串,在失敗時回傳 FALSE 。

在編碼過程中、常會用到json_encode來處理中文、但是、出現一個問題、中文都會被轉碼、變成」 \u**** 」的格式、如何避免被轉碼、亂碼呢?

方法1:PHP的版本5.4以上;

echo json_encode( '中文' );     // "\u4e2d\u6587"
echo json_encode( '中文', JSON_UNESCAPED_UNICODE ); // "中文"

說明:

語法: json_encode ( $value [, $options = 0 ] )

1、$value為要編碼的值,且此函數只對UTF8編碼的資料有效;

2、options:由下列常數組成的二進位遮罩:

JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_FINT,3_JSON_U_JSON_ JSON_UNESCAPED_UNICODE, JSON_PARTIAL_OUTPUT_ON_ERROR。

3、第二個參數一般不需要;

4、json資料其實就是一個string,可以用var_dump()印出來看資料型別;

5、執行成功返回JSON數據,否則返回FALSE。

方法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 ); // "中文"

更多程式相關知識,可到:程式設計入門! !

以上是php json_encode亂碼怎麼解決?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:php5.5怎麼安裝下一篇:php5.5怎麼安裝