近期做微信卡券开发遇到一个问题,创建卡券post数据给服务器时返回data format error, do NOT use json unicode encode (/uxxxx/uxxxx), please use utf8 encoded text!。这就奇怪了,代码中一直用的是UTF-8,怎么就跟unicode搭上关系了呢。一通搜索后发现,用PHP的json_encode来处理中文的时候,中文都会被编码,变成不可读的, 类似”/u***”的格式,微信服务器端不能接受。

$a = array('str1' => '中文', 'str2' => 'english');var_dump(json_encode($a));//string(40) "{"str1":"/u4e2d/u6587","str2":"english"}"

解决方法如下:

法一:

把汉字先urlencode然后再使用json_encode,json_encode之后再次使用urldecode来解码,这样编码出来的json数组中的汉字就不会出现unicode编码了。

$a = array('str1' => urlencode('中文'), 'str2' => 'english'); var_dump(urldecode(json_encode($a))); //string(34) "{"str1":"中文","str2":"english"}"

法二:

PHP 5.4中对json_encode对options可选参数增加JSON_UNESCAPED_UNICODE常量,即不编码为unicode

$a = array('str1' => '中文', 'str2' => 'english'); var_dump(json_encode($a, JSON_UNESCAPED_UNICODE));//string(34) "{"str1":"中文","str2":"english"}"

json_encode中文unicode的问题的更多相关文章

  1. php 解决json_encode中文UNICODE转码问题

    用PHP的json_encode来处理中文的时候, 中文都会被编码, 变成不可读的, 类似"\u***"的格式,如果想汉字不进行转码,这里提供三种方法 1.升级PHP,在PHP5. ...

  2. [转]php 解决json_encode中文UNICODE转码问题

    FROM : http://blog.csdn.net/bjash/article/details/9834497 用PHP的json_encode来处理中文的时候, 中文都会被编码, 变成不可读的, ...

  3. 解决json_encode中文UNICODE转码问题

    用PHP的json_encode来处理中文的时候, 中文都会被编码, 变成不可读的, 类似”\u***”的格式,如果想汉字不进行转码,这里提供三种方法 .升级PHP,在PHP5., 这个问题终于得以解 ...

  4. PHP json_encode中文unicode转码问题

    用PHP的json_encode来处理中文的时候, 中文都会被编码, 变成不可读的, 类似”\u***”的格式,如果想汉字不进行转码,这里提供三种方法 1.升级PHP,在PHP5.4, 这个问题终于得 ...

  5. php json_encode中文unicode问题

    php调用json_encode将中文字符串存入mysql后读取出来有问题,发现存进去的时候把'\'给去掉了.解决方法是调用json_encode时候后面加JSON_UNESCAPED_UNICODE ...

  6. json_encode 中文乱码

    用PHP的json_encode来处理中文的时候, 中文都会被编码, 变成不可读的, 类似"\u***"的格式, 还会在一定程度上增加传输的数据量. 而在PHP5.4, 这个问题终 ...

  7. PHP5.4以下的json_encode中文被转码的问题

    PHP的json_encode中文被转码的问题   在php5.2中做json_encode的时候.中文会被unicode编码, php5.3加入了options参数, 5.4以后才加入JSON_UN ...

  8. 中文unicode范围及unicode编解码

    中文unicode范围 : [\u4e00-\u9fa5] 普通字符串可以用多种方式编码成Unicode字符串,具体要看你究竟选择了哪种编码:unicodestring = u"Hello ...

  9. PHP json_encode 中文乱码

    每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code   在编码过程中.经常会用到json_encode来处理中文.但是.出现一个问题.中文 ...

随机推荐

  1. 有关STL 标准模板库

    1.vector  本质:对数组的封装  特点:读取能在常数时间内完成

  2. Glide 加载图片

    //通过model获取到图片的url,将Url转换成bitmap对象: //设置不保存内存和硬盘缓存, 1 Glide.with(mContext).load(model.getVideoUrl()) ...

  3. sizeof 跟 strlen 的区别

    1.参数 sizeof是c/c++ 中的一个操作符,其作用是返回对象或数据类型所占的内存字节数. 用法:sizeof(对象).sizeof 对象.sizeof(类型) 如果类型做参数,返回的是该类型所 ...

  4. oracle字符查出一位

    select cast('a' as varchar2(64)) from dual;

  5. jeasyui datagrid控件的一个小问题

    页面上用了datagrid,但今天把easyui更新到1.4.2以后出了个错,Cannot read property 'width' of null,以前用1.3.6的时候没有这个问题. 由于表格中 ...

  6. 修复IE9.0下PlaceHolder 属性问题js脚本

    在开发前端系统时候碰到这种兼容问题,以下是个人解决方案,希望能给其他人带来帮助: var JPlaceHolder = { //检测 _check: function () { return 'pla ...

  7. OpenSource.organization-in-github

    1. gosquared https://github.com/gosquared 2. slack https://github.com/slackhq 3. The New York Times ...

  8. 操作系统win2003 x64的,安装OFFICE2003后,DCOM服务找不到 WORD应用程序服务

    打开注册表,找到以下健值 HKEY_CLASSES_ROOT\AppID\{00020906-0000-0000-C000-000000000046} HKEY_CLASSES_ROOT\CLSID\ ...

  9. 有关tp里搜索框的实现方法

    1:

  10. 强大的Spring缓存技术(上)

    缓存是实际工作中非常常用的一种提高性能的方法, 我们会在许多场景下来使用缓存. 本文通过一个简单的例子进行展开,通过对比我们原来的自定义缓存和 spring 的基于注释的 cache 配置方法,展现了 ...