解決方法:1、設定json_encode()第二個參數的值為「JSON_UNESCAPED_UNICODE」即可;2.先把文字進行urlencode轉碼,再使用json_encode()編碼,接著進行urldecode解碼即可。
推薦:《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中文網其他相關文章!