PHP學習散記_編碼(json_encode 中文不顯示)
更新時間:2011年11月10日 23:02:46 作者:
今天使用json_encode轉(zhuǎn)換數(shù)組的時候,出現(xiàn)了中文不顯示的情況。
在網(wǎng)上找到一種解決方法:
<?php
/* 處理json_encode中文亂碼 */
$data = array ('game' => '冰火國度', 'name' => '刺之靈', 'country' => '冰霜國', 'level' => 45 );
echo json_encode ( $data );
echo "<br>";
$newData = array ();
foreach ( $data as $key => $value ) {
$newData [$key] = urlencode ( $value );
}
echo urldecode ( json_encode ( $newData ) );
?>
后來請教了別人,還可以用base64編碼,不過base64編碼不可以放在URL中,百度是這樣解釋的:
標準的Base64并不適合直接放在URL里傳輸,因為URL編碼器會把標準Base64中的“/”和“+”字符變?yōu)樾稳纭?XX”的形式,而這些“%”號在存入數(shù)據(jù)庫時還需要再進行轉(zhuǎn)換,因為ANSI SQL中已將“%”號用作通配符。
不過我的數(shù)據(jù)是要通過POST發(fā)送的,并不在HTTP 的head中,而在message-body里,所以不受影響。
json_encode 只能接受utf-8格式的數(shù)據(jù)
urlencode base64_encode 只能接受字符串類型的參數(shù),所以無法對整個數(shù)組進行編碼。
復制代碼 代碼如下:
<?php
/* 處理json_encode中文亂碼 */
$data = array ('game' => '冰火國度', 'name' => '刺之靈', 'country' => '冰霜國', 'level' => 45 );
echo json_encode ( $data );
echo "<br>";
$newData = array ();
foreach ( $data as $key => $value ) {
$newData [$key] = urlencode ( $value );
}
echo urldecode ( json_encode ( $newData ) );
?>
后來請教了別人,還可以用base64編碼,不過base64編碼不可以放在URL中,百度是這樣解釋的:
標準的Base64并不適合直接放在URL里傳輸,因為URL編碼器會把標準Base64中的“/”和“+”字符變?yōu)樾稳纭?XX”的形式,而這些“%”號在存入數(shù)據(jù)庫時還需要再進行轉(zhuǎn)換,因為ANSI SQL中已將“%”號用作通配符。
不過我的數(shù)據(jù)是要通過POST發(fā)送的,并不在HTTP 的head中,而在message-body里,所以不受影響。
json_encode 只能接受utf-8格式的數(shù)據(jù)
urlencode base64_encode 只能接受字符串類型的參數(shù),所以無法對整個數(shù)組進行編碼。
您可能感興趣的文章:
- 淺談php和js中json的編碼和解碼
- php中json_encode中文編碼問題分析
- PHP中遇到BOM、<feff>編碼導致json_decode函數(shù)無法解析問題
- php使用json_encode對變量json編碼
- php json中文編碼為null的解決辦法
- java解析php函數(shù)json_encode unicode 編碼問題
- php5.2 Json不能正確處理中文、GB編碼的解決方法
- php實現(xiàn)json編碼的方法
- PHP自定義遞歸函數(shù)實現(xiàn)數(shù)組轉(zhuǎn)JSON功能【支持GBK編碼】
- PHP 實現(xiàn) JSON 數(shù)據(jù)的編碼和解碼操作詳解
相關(guān)文章
Windows上php5.6操作mongodb數(shù)據(jù)庫示例【配置、連接、獲取實例】
這篇文章主要介紹了Windows上php5.6操作mongodb數(shù)據(jù)庫,結(jié)合實例形式簡單分析了Windows平臺上使用php5.6針對MongoDB數(shù)據(jù)庫的配置、連接、獲取實例等相關(guān)操作技巧,需要的朋友可以參考下2019-02-02解析PHP自帶的進位制之間的轉(zhuǎn)換函數(shù)
本篇文章是對PHP自帶的進位制之間的轉(zhuǎn)換函數(shù)進行了詳細的分析介紹,需要的朋友參考下2013-06-06PHP使用array_merge重新排列數(shù)組下標的方法
這篇文章主要介紹了PHP使用array_merge重新排列數(shù)組下標的方法,以實例形式較為詳細的分析了array_merge的功能,及針對數(shù)組下標進行重新排列操作的實現(xiàn)技巧,需要的朋友可以參考下2015-07-07