php中json_encode UTF-8中文乱码的更好解决方法


Posted in PHP onSeptember 28, 2014

最近在接口代码当中用到过json_encode,在网上找到说json_encode编码设置为UTF-8中文就不会乱码,经验证这办法确实是有效果的,但是不知道为什么,代码在用过一段时间之后就不太管用了。以下是自己的解决json_encode的办法。有更好的方法请分享出来吧!

第一种:

这种简单的做一个代码转换,urlcode之后再返回所需数组

我代码这样就足够了。

代码如下 复制代码

public static function encodeOperations ($array)

{

foreach ((array)$array as $key => $value) {

if (is_array($value)) {

encodeOperations($array[$key]);

} else {

$array[$key] = urlencode(mb_convert_encoding($value,'UTF-8','GBK'));

}

}

return $array;

}

第二种:

这种是在网上看到的,然后就是有评论说会出现无限循环的问题,但是这显然很全面的,然后我测试之后也确实有,贴这里仅供参考

代码如下

/**************************************************************

*

* 使用特定function对数组中所有元素做处理

* @param string &$array 要处理的字符串

* @param string $tocode 编码后

* @param string $oldcode 编码前

* @param string $function 要执行的函数

* @return boolean $apply_to_keys_also 是否也应用到key上

* @return array $array 是否也应用到key上

* @access public

*

*************************************************************/

function encodeOperations (&$array, $function, $tocode=false,$oldcode=false,$apply_to_keys_also = false)

{

foreach ($array as $key => $value) {
(3water.com)
if (is_array($value)) {

encodeOperations($array[$key], $function, $apply_to_keys_also);

} else {

if($tocode&&$oldcode) {

if(function_exists(mb_convert_encoding)) {

$value = mb_convert_encoding($value,$tocode,$oldcode);

}else{

return "error";

}

}

$array[$key] = $function($value);

}


if ($apply_to_keys_also && is_string($key)) {

$new_key = $function($key);

if ($new_key != $key) {

$array[$new_key] = $array[$key];

unset($array[$key]);

}

}

}

return $array;

}


/****from:https://3water.com/phper/31/66729.htm**********************************************************

*

* 将数组转换为JSON字符串(兼容中文)

* @param array $array 要转换的数组

* @return string 转换得到的json字符串

* @access public

*

*************************************************************/

function JSON($array) {

arrayRecursive($array, 'urlencode', true);

$json = json_encode($array);

return urldecode($json);

}

对中文返回是null空的话我们需要进行字符转换成uft8或者先使用urlencode进行编译呼。

PHP 相关文章推荐
《PHP边学边教》(02.Apache+PHP环境配置――上篇)
Dec 13 PHP
Breeze 文章管理系统 v1.0.0正式发布
Dec 14 PHP
php 一元分词算法
Nov 30 PHP
php页面消耗内存过大的处理办法
Mar 18 PHP
thinkphp3.0输出重复两次的解决方法
Dec 19 PHP
php通过array_shift()函数移除数组第一个元素的方法
Mar 18 PHP
PHP中JSON的应用技巧
Oct 10 PHP
YII Framework框架教程之安全方案详解
Mar 14 PHP
php查询操作实现投票功能
May 09 PHP
PHP实现的最大正向匹配算法示例
Dec 19 PHP
PHP chr()函数讲解
Feb 11 PHP
解决Laravel 不能创建 migration 的问题
Oct 09 PHP
初识PHP
Sep 28 #PHP
浅谈php和.net的区别
Sep 28 #PHP
PHP常用技术文之文件操作和目录操作总结
Sep 27 #PHP
Drupal简体中文语言包安装教程
Sep 27 #PHP
PHP常用编译参数中文说明
Sep 27 #PHP
PHP错误Warning: Cannot modify header information - headers already sent by解决方法
Sep 27 #PHP
PHP中的output_buffering详细介绍
Sep 27 #PHP
You might like
PHP中对数据库操作的封装
2006/10/09 PHP
php中判断文件空目录是否有读写权限的函数代码
2012/08/07 PHP
PHP header()函数使用详细(301、404等错误设置)
2013/04/17 PHP
javascript 实现简单的table排序及table操作练习
2012/12/28 Javascript
js实现在同一窗口浏览图片
2014/09/17 Javascript
jquery实现图片水平滚动效果代码分享
2015/08/26 Javascript
JS右下角广告窗口代码(可收缩、展开及关闭)
2015/09/04 Javascript
javascript显示上周、上个月日期的处理方法
2016/02/03 Javascript
jQuery 翻页组件yunm.pager.js实现div局部刷新的思路
2016/08/11 Javascript
js实现倒计时效果(小于10补零)
2017/03/08 Javascript
jquery实现的table排序功能示例
2017/03/10 Javascript
angular实现spa单页面应用实例
2017/07/10 Javascript
Vue添加请求拦截器及vue-resource 拦截器使用
2017/11/23 Javascript
jQuery中each方法的使用详解
2018/03/18 jQuery
如何从零开始手写Koa2框架
2019/03/22 Javascript
JavaScrip数组去重操作实例小结
2019/06/20 Javascript
关于vue里页面的缓存详解
2019/11/04 Javascript
three.js 利用uv和ThreeBSP制作一个快递柜功能
2020/08/18 Javascript
小程序角标的添加及绑定购物车数量进行实时更新的实现代码
2020/12/07 Javascript
Python中用PIL库批量给图片加上序号的教程
2015/05/06 Python
python获取当前用户的主目录路径方法(推荐)
2017/01/12 Python
python3 pillow生成简单验证码图片的示例
2017/09/19 Python
对python产生随机的二维数组实例详解
2018/12/13 Python
python多任务及返回值的处理方法
2019/01/22 Python
python实现连续变量最优分箱详解--CART算法
2019/11/22 Python
Python异常继承关系和自定义异常实现代码实例
2020/02/20 Python
Sofft鞋官网:世界知名鞋类品牌
2017/03/28 全球购物
Kneipp克奈圃美国官网:德国百年精油配方的传承
2018/02/07 全球购物
英国在线花园中心:You Garden
2018/06/03 全球购物
Wiggle美国:英国骑行、跑步、游泳、铁人三项商店
2018/10/27 全球购物
用C#语言写出在本地创建一个UDP接收端口的具体过程
2016/02/22 面试题
中介业务员岗位职责
2014/04/09 职场文书
小学英语课后反思
2014/04/26 职场文书
教师学习三严三实心得体会
2014/10/13 职场文书
接收函格式
2015/01/30 职场文书
高一军训口号
2015/12/25 职场文书