解决phpjson中文乱码问题
php json中文乱码的解决办法:首先将类中的中文字段进行url编码;然后再将对象进行json编码;最后进行url解码即可解决乱码问题。
创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于网站设计制作、成都做网站、永定网络推广、小程序定制开发、永定网络营销、永定企业策划、永定品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们大的嘉奖;创新互联公司为所有大学生创业者提供永定建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com
推荐:《PHP视频教程》
PHP中json中文乱码问题解决
问题:
众所周知使用json_encode可以方便快捷地将对象进行json编码,但是如果对象的属性中存在着中文,问题也就随之而来了。
json_encode会将中文转换为unicode编码,例如:'我'经过json_encode处理后变为'\\\\u6211',最终的json中中文部分被替换为unicode编码。我们要解决的就是将对象转换为json并保证对象内部的中文在json中仍然是以正常的中文出现,现在看来只使用json_encode是不能达到目的的。
解决方法:先将类中的中文字段进行url编码(urlencode),然后再对对象进行json编码(jsonencode),最后url解码(urldecode)json,即最终的json,里面的中文依旧是那个中文,完成我们想要的效果
'a','b'=>'b'); //string '{"a":"a","b":"b"}' (length=17) var_dump(json_encode($arr)); class Person{ private $money=0; public $name=null; protected $lover=null; public function __construct($name,$money,$lover){ $this->name=$name; $this->money=$money; $this->lover=$lover; } public function getName(){ return $this->name; } protected function getLover(){ return $this->love; } private function getMoney(){ $this->money; } } $zhangsan=new Person('zhagnsan','9999999','beautiful grils'); //只会将类中public属性转为json格式 var_dump(json_encode($zhangsan)); //string '{"name":"zhangsan"}' (length=19) //对于数组或是对象包含中文,json_encode会将中文转换为unicode编码, //解决方法:先将类或是数组中的中文字段进行url编码(urlencode),然后再对对象或是数组进行json编码(jsonencode),最后url解码(urldecode)json,即最终的json $arr=array('ename'=>'dqs','cname'=>'你猜啊'); var_dump(json_encode($arr)); //中文,出现乱码,string '{"ename":"dqs","cname":"\\\\u4f60\\\\u731c\\\\u554a"}' (length=44) $arr['cname']=urlencode($arr['cname']); $arr_json=urldecode(json_encode($arr)); var_dump($arr_json); //string '{"ename":"dqs","cname":"你猜啊"}' (length=35) //3.补充知识,查看字符编码方式以及转码 $name="dsq,你好啊"; //iconv_get_encoding()获取当前页面的编码信息 var_dump(mb_detect_encoding($name)); //UTF-8 $name=iconv("UTF-8","GB2312//IGNORE",$name); var_dump(mb_detect_encoding($name)); //UTF-8 //思考,为什么将utf-8编码转为gb2312后还是utf-8呢? 查看字符串编码mb_detect_encoding //echo mb_detect_encoding($arr['cname']); //$newData=iconv("GB2312","UTF-8//IGNORE",$data);
标题名称:解决phpjson中文乱码问题
文章来源:http://azwzsj.com/article/cheiej.html