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+dbfile开发小型留言本
Oct 09 PHP
PHP+DBM的同学录程序(5)
Oct 09 PHP
教你如何使用php session
Oct 28 PHP
php 不使用js实现页面跳转
Feb 11 PHP
php实现文件下载功能的几个代码分享
May 10 PHP
yii操作session实例简介
Jul 31 PHP
php 升级到 5.3+ 后出现的一些错误,如 ereg(); ereg_replace(); 函数报错
Dec 07 PHP
PHP5.3新特性小结
Feb 14 PHP
Zend Framework基本页面布局分析
Mar 19 PHP
深入浅析PHP无限极分类的案例教程
May 09 PHP
python进程与线程小结实例分析
Nov 11 PHP
CentOS7编译安装php7.1的教程详解
Apr 18 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的ob_start() 控制您的浏览器cache
2009/08/03 PHP
PHP下打开phpMyAdmin出现403错误的问题解决方法
2013/05/23 PHP
PHP使用递归算法无限遍历数组示例
2017/01/13 PHP
php无限级评论嵌套实现代码
2018/04/18 PHP
php 多继承的几种常见实现方法示例
2019/11/18 PHP
php数组函数array_push()、array_pop()及array_shift()简单用法示例
2020/01/26 PHP
破除网页鼠标右键被禁用的绝招大全
2006/12/27 Javascript
JQuery优缺点分析说明
2010/06/09 Javascript
javascript 快速排序函数代码
2012/05/30 Javascript
JavaScript中的console.group()函数详细介绍
2014/12/29 Javascript
jquery利用命名空间移除绑定事件的方法
2015/03/11 Javascript
js编写的treeview使用方法
2016/11/11 Javascript
微信小程序 form组件详解及简单实例
2017/01/10 Javascript
angular实现商品筛选功能
2017/02/01 Javascript
nodejs开发——express路由与中间件
2017/03/24 NodeJs
vue表单数据交互提交演示教程
2019/11/13 Javascript
[01:14:12]2018DOTA2亚洲邀请赛4.7 总决赛 LGD vs Mineski 第二场
2018/04/09 DOTA
[02:08]2018年度CS GO枪械皮肤设计大赛优秀作者-完美盛典
2018/12/16 DOTA
python fabric实现远程操作和部署示例
2014/03/25 Python
Django与遗留的数据库整合的方法指南
2015/07/24 Python
Python2.7+pytesser实现简单验证码的识别方法
2017/12/29 Python
TensorFlow实现Logistic回归
2018/09/07 Python
一篇文章带你搞定Ubuntu中打开Pycharm总是卡顿崩溃
2020/11/02 Python
性能服装:HYLETE
2018/08/14 全球购物
美国最大的户外装备和服装购物网站:Backcountry
2019/10/15 全球购物
毕业生个人求职自荐信
2014/02/26 职场文书
庆国庆国旗下讲话稿2014
2014/09/21 职场文书
离婚财产分隔协议书
2014/10/23 职场文书
学生检讨书范文
2015/01/27 职场文书
社会实践活动总结
2015/02/05 职场文书
淮海战役观后感
2015/06/11 职场文书
公司食堂管理制度
2015/08/05 职场文书
爱国主义教育主题班会
2015/08/13 职场文书
导游词之贵州织金洞
2019/10/12 职场文书
导游词之香港-太平山顶
2019/10/18 职场文书
祝福语集锦:送给毕业同学祝福语
2019/11/21 职场文书