加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

[日常] json_encode对中文和引号的处理差异研究

发布时间:2020-05-25 03:12:32 所属栏目:PHP 来源:互联网
导读:json_encode()1.默认就是把所有 ASCII 可显示字符以外的统统转义为 Unicode如果把那些字符转义为 Unicode 之后,无论文件编码是否一致,都不会出现乱码,因此中文转成Unicode编码是有好处的2.对单引号和双引号的处理是有差异的,并且受数组键值包裹字符串的引号

json_encode()1.默认就是把所有 ASCII 可显示字符以外的统统转义为 Unicode如果把那些字符转义为 Unicode 之后,无论文件编码是否一致,都不会出现乱码,因此中文转成Unicode编码是有好处的

2.对单引号和双引号的处理是有差异的,并且受数组键值包裹字符串的引号影响

3.json_encode(array(),JSON_FORCE_OBJECT));输出空的对象json_encode(new stdClass());另一种方式JSON_UNESCAPED_SLASHES 不要转义 /,例如很多url被转义JSON_UNESCAPED_UNICODE 汉字不要编码成Unicode 字符

var_dump(json_encode(array()));
var_dump(json_encode(array(),JSON_FORCE_OBJECT));
var_dump(json_encode(new stdClass()));
var_dump(json_encode(array('name'=>'陶士涵','point'=>100,'test'=>'/aaa " ' aa
'),JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES));
var_dump(json_encode(array("name"=>"陶士涵","point"=>100,"test"=>"/aaa " ' ' aa
"),JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES));
/**
输出
string(2) "[]"
string(2) "{}"
string(2) "{}"
string(64) "{"name":"陶士涵","point":100,"test":"/aaa " ' aarn"}"
string(65) "{"name":"陶士涵","test":"/aaa " ' ' aarn"}"

  

4.出现错误时的处理,json_decode失败的问题:

var_dump(json_last_error());//打印出错信息var_dump($b);0 JSON_ERROR_NONE1 JSON_ERROR_DEPTH2 JSON_ERROR_STATE_MISMATCH3 JSON_ERROR_CTRL_CHAR4 JSON_ERROR_SYNTAX5 JSON_ERROR_UTF86 JSON_ERROR_RECURSION7 JSON_ERROR_INF_OR_NAN8 JSON_ERROR_UNSUPPORTED_TYPE

当编码有问题时这样处理$a=iconv("gbk","utf-8//IGNORE",$a);$b=json_decode($a,true);

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读