解决php json中文乱码问题

php json中文乱码的解决办法:首先将类中的中文字段进行url编码;然后再将对象进行json编码;最后进行url解码即可解决乱码问题。

推荐:《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,里面的中文依旧是那个中文,完成我们想要的效果

//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怎么将时间戳转换时间格式

在php中,可以使用date()函数来将时间戳转换时间格式,该函数可以将时间戳格式化为可读性更好的日期和时间,语法格式“date(时间戳的输出格式,时间戳)”,例如“date(Y-m-d H:i:s,时间戳)”。 推荐:《PHP视频教程》 当时间和日期保存在计算机中的时候,可以

php 如何设置redis

php设置redis的方法:首先安装redis服务及PHP redis驱动;然后打开php.ini文件;接着增加内容为“extension=redis.so”;最后重启php-fpm或apache即可。 推荐:《PHP视频教程》《redis教程》 PHP 设置使用 Redis 安装 开始在 PHP 中使用 Redis 前, 我们需要

php怎么将图片转换为base64

在PHP中,可用base64_encode()和chunk_split()函数来对图片文件进行base64编码,将其转换为base64格式,语法格式“chunk_split(base64_encode(fread(文件, 大小)”。 推荐:《PHP视频教程》 PHP对Base64的支持非常好,有内置的base64_encode与base64_decode

php mysql扩展如何安装

php mysql扩展的安装方法:首先进入php源码的ext/mysql目录;然后运行phpize并运行configure;接着编译安装,生成mysql.so;最后修改php.ini文件,添加mysql.so扩展配置即可。 推荐:《PHP视频教程》 PHP安装mysql.so扩展 在PHP中mysql_connect模块已经逐渐

怎么给php安装curl扩展

给php安装curl扩展的方法:1、将php_curl.dll文件复制到system32目录下;2、编辑php.ini文件,开启php_curl.dell扩展;3、重启apache或iis。 window下安装php_curl支持 (视频教程推荐:java视频教程) 1、将PHP安装文件夹下的三个文件php_curl.dll(可能在ex

php fpm如何设置

设置php fpm的方法:首先通过ps命令查看php-fpm相关的所有进程;然后通过pstree命令查看php-fpm下面的子进程;接着进行参数进程配置;最后查看php-fpm参数配置即可。 推荐:《PHP视频教程》 php-fpm是什么 php-fpm是PHP的一个进程管理器。php下面的众多work

php隐藏域是什么

php隐藏域是用来收集或发送信息的不可见元素,对于页面的访问者来说,隐藏域是不可见的。当表单被提交时,隐藏域便会将信息用设置时定义的名称和值发送到服务器上。 隐藏域: 隐藏域是用来收集或发送信息的不可见元素,对于网页的访问者来说,隐藏域是看不见

php string如何实现替换

在php中可以通过str_replace函数将string替换成其他字符串,其语法是“str_replace(find,replace,string,count)”,参数string规定被搜索的字符串。 推荐:《PHP视频教程》 str_replace() 函数以其他字符替换字符串中的一些字符(区分大小写)。 该函数必须

php在传json中文乱码,解决php json中文乱码问题相关推荐

  1. php 对象json中文乱码,解决php json中文乱码问题

    php json中文乱码的解决办法:首先将类中的中文字段进行url编码:然后再将对象进行json编码:最后进行url解码即可解决乱码问题. PHP中json中文乱码问题解决 问题: 众所周知使用jso ...

  2. linux+wine乱码,Ubuntu下Wine乱码解决方法与中文支持

    由于这段时间安装了Ubuntu 9.04 x64的系统,也碰到了很多问题,收集起来以便方便使用 安装 wine ubuntu 官方自带了 wine , 但是推荐用 winehq 官方提供的最新版本 w ...

  3. 【数据库】MySQL乱码解决(存入数据乱码和查询输出乱码)

    一般在安装和设置MySQL的时候会选择将其编码格式设置为UTF8,以保证数据库在不用语言环境下的适应性.但是一般在Win下使用的时候,本机编码集却是GBK或者GB2312.这样在Win下的GBK编码输 ...

  4. mysql中文乱码解决_java+mysql中文乱码问题

    乱码问题原因有多种,其中有一种是由于MySQL默认使用 ISO-8859-1 ( 即Latin1 ) 字符集,而JAVA内部使用Unicode编码,因此在JAVA中向MYSQL数据库插入数据时,或者读 ...

  5. android短信发送乱码,解决CEMAPI发送中文短信时会乱码

    作者:陈缘 联系:luandao2000@gmail.com 博客:http://blog.csdn.net/luandao2000 主页:http://www.spbase.com 这个问题 所有用 ...

  6. dw写出来的php乱码,解决DW中的乱码问题

    Dreamweaver出现乱码,大致为两种情况: 一是没有标明主页制作所用的文字,这种情况下很简单就可以解决,在区加上即可. 二是你新加装了字体,诸如文鼎酷字体之类.这样的话,你每次新建一张网页,都要 ...

  7. linux日文乱码,解决日文压缩文件乱码问题的方法——深圳培训linux

    这篇文章, 有关日文压缩文件乱码的问题,自己用的是日文的linux系统,昨天从同事那儿收了个压缩文件,结果解压之后文件名都乱吗了(内容正常显示).网上 google了以下发现是因为windows下默认 ...

  8. android 串口乱码,解决串口接收数据乱码的问题

    如标题所示,各种仪器仪表进行串口通讯,都可能遇到运行后发现串口数据出错,接收到的都是乱码,不知道是哪个环节出了问题,怎么办? 乱码的原因通常有两个: 1.波特率 数据位 校验位 不匹配,即我们的网络转 ...

  9. windows tomcat无乱码 linux下乱码,解决linux服务器tomcat乱码问题

    1 保证linux服务器使用的是utf-8 local -a查看支持的字体 vi/etc/sysconfig/i18n 修改为zh_CN.UTF-8 2.客户端软件Xshell.putty.SSH S ...

最新文章

  1. 2017 人工智能+内容生产研究报告【附下载】
  2. linux 下的图片处理软件下载,美图秀秀Linux版
  3. 2017年蓝桥杯省赛
  4. 论文浅尝 | 将文本建模为关系图,用于联合实体和关系提取
  5. NumPy——生成随机数的学习笔记~
  6. Docker 容器操作
  7. 多级三目运算符的判断
  8. 短视频标题自动生成工具,助你打造爆款标题
  9. IntelliJ IDEA Maven安装配置
  10. 集成DC电源RS485/422收发器数字隔离芯片CA-IS309X
  11. 微信小程序生成推广二维码
  12. struts 标签logic:iterate用法详解
  13. Unity关于Layer的管理
  14. Xilinx FPGA clk_wiz IP使用
  15. java丐帮_java多线程学习笔记(五)
  16. 易中天:讲《从老庄到禅宗》
  17. 美国地质调查局SRTM--30米DEM数据
  18. 中国IT领袖峰会 以5G与人工智能为主题
  19. Sw Solidworks渐开线绘制方法公式
  20. 绿色 . IT . 从小事做起

热门文章

  1. Java常用类之Calendar类和GregorianCalendar类
  2. python爬去电影天堂恐怖片+游戏
  3. RocketMQ常用命令使用示例及说明
  4. 数据库系统之函数依赖
  5. 我的无线DIY设计—基于STM32WB55_NUCLEO​的遥控小车
  6. Javascript自学——绿叶网
  7. 单例模式中的懒汉式和饿汉式对比
  8. Android_Animation动画
  9. Linux-Audio Codec
  10. 巧妙利用CSS3实现太阳系行星公转运动轨迹