不知为何PHP6.0 用不了json_encode($arr,JSON_UNESCAPED_UNICODE);后面的参数不让带
成功输出中文。
还是用网上介绍的iconv("gbk","utf-8",$val),转化,但进行了改写这句: $arrRs[$key] = urlencode(iconv('GBK','UTF-8',$value));
function gbktoutf8($arr){
if(is_array($arr) && count($arr)){
foreach($arr as $key=>$value){
if(is_array($value)){
$arrRs[$key] = gbktoutf8($value);
}else{
if(!is_utf8($value)){
$arrRs[$key] = urlencode(iconv('GBK','UTF-8',$value));
}else{
$arrRs[$key] = $value;
}
}
}
return $arrRs;
}
return null;
}
function is_utf8($string)
{
return (utf8_encode(utf8_decode($string)) == $string);
}
echo urldecode(json_encode($arr));
头部别忘了:
header("Content-Type:text/html;charset=utf-8");
成功输出中文。
本文介绍了一种在PHP中处理含有中文字符的数组并将其转换为JSON格式的方法。通过使用iconv进行字符集转换,并结合urlencode确保正确编码,最终实现通过echo输出中文内容。
2329

被折叠的 条评论
为什么被折叠?



