php 对象json中文乱码,解决php json中文乱码问题
php json中文乱码的解决办法:首先将类中的中文字段进行url编码;然后再将对象进行json编码;最后进行url解码即可解决乱码问题。
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,里面的中文依旧是那个中文,完成我们想要的效果
//1.将数组、对象转为json格式(数组、对象都不包含中午)
$arr=array('a'=>'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);
php 对象json中文乱码,解决php json中文乱码问题相关推荐
- php在传json中文乱码,解决php json中文乱码问题
解决php json中文乱码问题 php json中文乱码的解决办法:首先将类中的中文字段进行url编码:然后再将对象进行json编码:最后进行url解码即可解决乱码问题. 推荐:<PHP视频教 ...
- linux+wine乱码,Ubuntu下Wine乱码解决方法与中文支持
由于这段时间安装了Ubuntu 9.04 x64的系统,也碰到了很多问题,收集起来以便方便使用 安装 wine ubuntu 官方自带了 wine , 但是推荐用 winehq 官方提供的最新版本 w ...
- 【数据库】MySQL乱码解决(存入数据乱码和查询输出乱码)
一般在安装和设置MySQL的时候会选择将其编码格式设置为UTF8,以保证数据库在不用语言环境下的适应性.但是一般在Win下使用的时候,本机编码集却是GBK或者GB2312.这样在Win下的GBK编码输 ...
- mysql中文乱码解决_java+mysql中文乱码问题
乱码问题原因有多种,其中有一种是由于MySQL默认使用 ISO-8859-1 ( 即Latin1 ) 字符集,而JAVA内部使用Unicode编码,因此在JAVA中向MYSQL数据库插入数据时,或者读 ...
- android短信发送乱码,解决CEMAPI发送中文短信时会乱码
作者:陈缘 联系:luandao2000@gmail.com 博客:http://blog.csdn.net/luandao2000 主页:http://www.spbase.com 这个问题 所有用 ...
- dw写出来的php乱码,解决DW中的乱码问题
Dreamweaver出现乱码,大致为两种情况: 一是没有标明主页制作所用的文字,这种情况下很简单就可以解决,在区加上即可. 二是你新加装了字体,诸如文鼎酷字体之类.这样的话,你每次新建一张网页,都要 ...
- linux日文乱码,解决日文压缩文件乱码问题的方法——深圳培训linux
这篇文章, 有关日文压缩文件乱码的问题,自己用的是日文的linux系统,昨天从同事那儿收了个压缩文件,结果解压之后文件名都乱吗了(内容正常显示).网上 google了以下发现是因为windows下默认 ...
- android 串口乱码,解决串口接收数据乱码的问题
如标题所示,各种仪器仪表进行串口通讯,都可能遇到运行后发现串口数据出错,接收到的都是乱码,不知道是哪个环节出了问题,怎么办? 乱码的原因通常有两个: 1.波特率 数据位 校验位 不匹配,即我们的网络转 ...
- windows tomcat无乱码 linux下乱码,解决linux服务器tomcat乱码问题
1 保证linux服务器使用的是utf-8 local -a查看支持的字体 vi/etc/sysconfig/i18n 修改为zh_CN.UTF-8 2.客户端软件Xshell.putty.SSH S ...
最新文章
- 一篇文看懂Hadoop
- python零基础入门大数据_【资源分享】零基础入门大数据(数据分析)经验分享...
- vasp安装包_【问题集锦】VASPamp;MedeA 第十一期
- android 制作的精美闹钟
- termcap-1.3.1的configure.in文件逐行分析
- dockerhub 拉取地址_使用docker,进行dockerhub仓库上传镜像,拉取镜像。
- 影像测量仪使用的注意点
- 金九银十北漂记第3篇:再见,中国航信!
- Windows打开dcm文件、dcm文件批量转其它图片文件格式
- 工作拾忆 一年C++经验小记
- 自动尺寸标注 html,PxCook - 高效易用的自动标注工具,生成前端代码,设计研发协作利器...
- 如何通过 User-Agent 识别百度蜘蛛
- Java实现合成图片
- echart地图隐藏南海诸岛
- 基于gmssl SM2 签名验签测试程序
- CTF-Crypto必备自动解密神器-Ciphey
- 无代码BPM平台的使用和推荐
- android银行卡绑定,华为huawei pay怎么绑定银行卡 绑卡方法教程
- 计算机体系结构——动态流水线动态调度详解
- String类型转换成LocalDate 和 LocalDateTime