PHP學(xué)習(xí)散記_編碼(json_encode 中文不顯示)
更新時(shí)間:2011年11月10日 23:02:46 作者:
今天使用json_encode轉(zhuǎn)換數(shù)組的時(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中,百度是這樣解釋的:
標(biāo)準(zhǔn)的Base64并不適合直接放在URL里傳輸,因?yàn)閁RL編碼器會把標(biāo)準(zhǔn)Base64中的“/”和“+”字符變?yōu)樾稳纭?XX”的形式,而這些“%”號在存入數(shù)據(jù)庫時(shí)還需要再進(jìn)行轉(zhuǎn)換,因?yàn)锳NSI SQL中已將“%”號用作通配符。
不過我的數(shù)據(jù)是要通過POST發(fā)送的,并不在HTTP 的head中,而在message-body里,所以不受影響。
json_encode 只能接受utf-8格式的數(shù)據(jù)
urlencode base64_encode 只能接受字符串類型的參數(shù),所以無法對整個(gè)數(shù)組進(jìn)行編碼。
復(fù)制代碼 代碼如下:
<?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中,百度是這樣解釋的:
標(biāo)準(zhǔn)的Base64并不適合直接放在URL里傳輸,因?yàn)閁RL編碼器會把標(biāo)準(zhǔn)Base64中的“/”和“+”字符變?yōu)樾稳纭?XX”的形式,而這些“%”號在存入數(shù)據(jù)庫時(shí)還需要再進(jìn)行轉(zhuǎn)換,因?yàn)锳NSI SQL中已將“%”號用作通配符。
不過我的數(shù)據(jù)是要通過POST發(fā)送的,并不在HTTP 的head中,而在message-body里,所以不受影響。
json_encode 只能接受utf-8格式的數(shù)據(jù)
urlencode base64_encode 只能接受字符串類型的參數(shù),所以無法對整個(gè)數(shù)組進(jìn)行編碼。
您可能感興趣的文章:
- 淺談php和js中json的編碼和解碼
- php中json_encode中文編碼問題分析
- PHP中遇到BOM、<feff>編碼導(dǎo)致json_decode函數(shù)無法解析問題
- php使用json_encode對變量json編碼
- php json中文編碼為null的解決辦法
- java解析php函數(shù)json_encode unicode 編碼問題
- php5.2 Json不能正確處理中文、GB編碼的解決方法
- php實(shí)現(xiàn)json編碼的方法
- PHP自定義遞歸函數(shù)實(shí)現(xiàn)數(shù)組轉(zhuǎn)JSON功能【支持GBK編碼】
- PHP 實(shí)現(xiàn) JSON 數(shù)據(jù)的編碼和解碼操作詳解
相關(guān)文章
Windows上php5.6操作mongodb數(shù)據(jù)庫示例【配置、連接、獲取實(shí)例】
這篇文章主要介紹了Windows上php5.6操作mongodb數(shù)據(jù)庫,結(jié)合實(shí)例形式簡單分析了Windows平臺上使用php5.6針對MongoDB數(shù)據(jù)庫的配置、連接、獲取實(shí)例等相關(guān)操作技巧,需要的朋友可以參考下2019-02-02php函數(shù)連續(xù)調(diào)用實(shí)例分析
這篇文章主要介紹了php函數(shù)連續(xù)調(diào)用的方法,以簡單實(shí)例形式分析了php采用鏈?zhǔn)秸{(diào)用的方式連續(xù)調(diào)用函數(shù)的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07解析PHP自帶的進(jìn)位制之間的轉(zhuǎn)換函數(shù)
本篇文章是對PHP自帶的進(jìn)位制之間的轉(zhuǎn)換函數(shù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06將一維或多維的數(shù)組連接成一個(gè)字符串的php代碼
自定義一個(gè)函數(shù) ,把一個(gè)數(shù)組變成用,(逗號)連接起來的字符串 (注意:應(yīng)考慮到多維數(shù)組的情況,并以返回值的形式返回)2010-08-08PHP使用PDO實(shí)現(xiàn)mysql防注入功能詳解
這篇文章主要介紹了PHP使用PDO實(shí)現(xiàn)mysql防注入功能,結(jié)合實(shí)例形式詳細(xì)分析了PHP使用pdo操作mysql防注入原理、實(shí)現(xiàn)方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下2019-12-12PHP使用array_merge重新排列數(shù)組下標(biāo)的方法
這篇文章主要介紹了PHP使用array_merge重新排列數(shù)組下標(biāo)的方法,以實(shí)例形式較為詳細(xì)的分析了array_merge的功能,及針對數(shù)組下標(biāo)進(jìn)行重新排列操作的實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-07-07