博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解决php函数json_encode转换后中文被编码为unicode
阅读量:7172 次
发布时间:2019-06-29

本文共 722 字,大约阅读时间需要 2 分钟。

大家都知道使用函数json_encode()可以方便快捷地将数组进行json编码转换,但是如果数组值存在着中文,json_encode会将中文转换为unicode编码,例如:

 

打印出的结果为:

["\u4e2d\u56fd","\u7f8e\u56fd","\u9ad8\u5bcc\u5e05","\u767d\u5bcc\u7f8e","\u5c4c\u4e1d"]

 

这种格式也是我们最常见的,在javascript中也是可以被解析的。但有些情况下我不需要将中文转换为unicode编码,该如果处理呢。解决办法是先将中文进行 urlencode()转码。然后转为json.再通过urldecode() 将json转换就可以解决:

$data = array();foreach($array as $key=>$value){    $data[] = urlencode($value);}echo urldecode(json_encode($data));

 

打印结果为:

[
"中国"
,
"美国"
,
"高富帅"
,
"白富美"
,
"屌丝"
]

这样,我们的问题也就解决了,常见的有天气预报的接口返回值就是这样的。需要我们注意的是 json_encode()只支持UTF-8编码。所以如果是其它编码的时候还需要转换一下。如:iconv(),当然方法也很多了,在PHP5.4的版本中 json_encode()已经支持不转换编码,例:json_encode($str, JSON_UNESCAPED_UNICODE)

转载于:https://www.cnblogs.com/zrp2013/p/3784332.html

你可能感兴趣的文章
Lamda表达式,map和集合操作
查看>>
discuz的php7版本号
查看>>
Hibernate中的session和load延迟载入矛盾问题,怎样解决?
查看>>
MACD判断定背离,底背离
查看>>
UML建模学习1:UML统一建模语言简单介绍
查看>>
【书籍推荐】
查看>>
Bing Advanced Search Tricks You Should Know
查看>>
EF6 DbModelBuilder
查看>>
裴波那切数的探讨
查看>>
复杂查询
查看>>
【python】正则表达式
查看>>
使用Mongoose类库实现简单的增删改查
查看>>
Scrum为什么不喜欢“来自客户的频繁变更”?
查看>>
RadioGroup控件实现单选题效果
查看>>
PL/SQL Developer使用技巧|F=Forwarding|
查看>>
工作三年的思考
查看>>
Java工具类 Apache Commons:commons-lang
查看>>
C++ 原来 const 中所使用的函数 必须 全都具有 const 才行
查看>>
浏览器中 for in 反射 对象成员 的差异
查看>>
关于Linux启动时挂载rootfs的几种方式
查看>>