當(dāng)php中的數(shù)組通過(guò)json_encode把數(shù)組轉(zhuǎn)換為json時(shí),發(fā)現(xiàn)轉(zhuǎn)化的值為null,通過(guò)php手冊(cè)上的解釋是該函數(shù)只能接受 UTF-8 編碼的數(shù)據(jù)(譯注:指字符/字符串類型的數(shù)據(jù)),如果當(dāng)前頁(yè)面的編碼沒(méi)有指定utf8或者網(wǎng)頁(yè)編碼不是utf8,肯定是沒(méi)任何輸出的,返回null值的。
1.當(dāng)在php自身頁(yè)面輸出數(shù)組時(shí)需要在輸出前加上一句header(Content-type:text/html;charset=utf8);
2.當(dāng)通過(guò)獲取其他頁(yè)面數(shù)據(jù)返回成數(shù)組再轉(zhuǎn)換成json時(shí),還要注意對(duì)獲取頁(yè)面的數(shù)據(jù)進(jìn)行轉(zhuǎn)碼,避免你聲明的編碼和要輸出的數(shù)據(jù)的編碼類型不相同,所以,可以通過(guò)下面的函數(shù)進(jìn)行字符串轉(zhuǎn)碼
function encodeConvert($str,$fromCode,$toCode){
if(strtoupper($toCode) == strtoupper($fromCode)) return $str;
if(is_string($str)){
if(function_exists('mb_convert_encoding')){
return mb_convert_encoding($str,$toCode,$fromCode);
}
else{
return iconv($fromCode,$toCode,$str);
}
}
elseif(is_array($str)){
foreach($str as $k=>$v){
$str[$k] = encodeConvert($v,$fromCode,$toCode);
}
return $str;
}