PHP输出json数据时中文不进行unicode编码的几种方法总结
来源:互联网 发布:哪个电视直播软件最好 编辑:程序博客网 时间:2024/06/06 16:35
最近使用PHP开发APP接口时遇到一个问题,在与APP对接时,需要将从数据库或缓存中获取的数据转换成json,在做json_encode的时候,中文会被unicode编码,但是不希望中文进行编码。
json原样输出中文形式如下:
{ "code":"200", "message":"success", "data":[ { "id":"1", "content":"\u6709\u4eba@\u4f60" } ] }
希望结果是:
{ "code": "200", "message": "success", "data": [ { "id": "70", "content": "中文测试", } ]}
总结出以下几种方法:
方法一
php5.4以后使用了json_encode的JSON_UNESCAPED_UNICODE参数可以实现对字符不做escape和unicode处理
使用方法如下:
$str = "中文测试";json_encode($str,JSON_UNESCAPED_UNICODE);
但是经过测试后,发现不能对数组进行操作,如
$arr = array('id'=>'1','content1'=>'中文测试1','content2'=>'中文测试2');json_encode($arr,JSON_UNESCAPED_UNICODE);
上面这种形式似乎不起作用,故采用了第二种方法
方法二
先对需要处理的做urlencode处理,然后json_encode,最后做urldecode处理 ,使用方法如下:
/** * 使用url_encode()对字符串进行编码 * @param string/array $str 需要编码的数据 * @return string/array $str 返回编码后的字符串 */ function url_encode($str) { if(is_array($str)) { foreach($str as $key=>$value) { $str[urlencode($key)] = url_encode($value); } } else { $str = urlencode($str); } return $str; } /*** 输出json数据,不解析中文* @param string/array $str 需要进行json编码的数据* @return string 输出json数据*/function encode_json($str) { $result = urldecode(json_encode(url_encode($str))); return $result; }
折腾好久之后,发现使用json_encode()直接输出的数据能直接在APP中直接使用,需要输出的json数据在客户端开发的控制台不解析,在客户端输出后可自动解析,不过也得到了不错的经验,希望继续学习
0 0
- PHP输出json数据时中文不进行unicode编码的几种方法总结
- Web Api 输出Json格式数据,中文要进行Unicode编码(模拟PHP的json_encode输出)
- php查询到的数据乱码和转json时中文变成了Unicode的编码。
- PHP json不unicode编码的实现
- 如何使得中文不被 json_encode 不编码成 unicode PHP 浏览:9722 2014年08月14日 使用 php 自带的 json_encode 函数对数据进行编码时,中文都会变成
- php 不转义中文字符的 json 编码方法
- json处理中文,不编码Unicode
- php 返回不对中文unicode编码的json
- php中输出json数据的几种方式
- python 输出JSON类型数据时遇到的编码问题(utf8,unicode)
- 如果JSON数据中有中文,输出Unicode编码,无法识别解决办法
- python unicode 编码的中文输出
- php 输出 json 中文不改变
- 用到一个json输出不转义/和中文的方法
- PHP返回JSON数据及中文编码问题的解决方案
- 让Jackson JSON生成的数据包含的中文以unicode方式编码
- 让Jackson JSON生成的数据包含的中文以unicode方式编码
- Android使用json对中文进行编码 使用php接收时进行解码
- Cuava字符串处理:分割,连接,填充
- Openssl CA证书生成以及双向认证,及windows系统证书批量导出,android cer转bks
- LintCode 143. Sort Colors II
- ActivityCompat使用
- MongoDB 基础
- PHP输出json数据时中文不进行unicode编码的几种方法总结
- android studio 工具使用的常见问题
- Android创建桌面快捷方式
- springMVC上传
- Python学习-机器学习实战-ch07 AdaBoost
- 解决Eclipse建立Maven项目后无法建立src/main/java资源文件夹的办法
- java中的并发工具类
- Spark中组件Mllib的学习32之朴素贝叶斯分类器(伯努利朴素贝叶斯)*
- Linux系统调用--- mount/umount函数详解