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 相关文章推荐
PHP5中使用PDO连接数据库的方法
Aug 01 PHP
smarty中先strip_tags过滤html标签后truncate截取文章运用
Oct 25 PHP
基于PHP读取csv文件内容的详解
Jun 18 PHP
php获取textarea的值并处理回车换行的方法
Oct 20 PHP
php简单实现无限分类树形列表的方法
Mar 27 PHP
Codeigniter控制器controller继承问题实例分析
Jan 19 PHP
php实现带读写分离功能的MySQL类完整实例
Jul 28 PHP
PHP实现蛇形矩阵,回环矩阵及数字螺旋矩阵的方法分析
May 29 PHP
Laravel如何友好的修改.env配置文件详解
Jun 07 PHP
Laravel中encrypt和decrypt的实现方法
Sep 24 PHP
php面向对象程序设计入门教程
Jun 22 PHP
php-7.3.6 编译安装过程
Feb 11 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版
2012/04/20 PHP
解析php中两种缩放图片的函数,为图片添加水印
2013/06/14 PHP
Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解
2016/03/07 PHP
PHP levenshtein()函数用法讲解
2019/03/08 PHP
再谈IE中Flash控件的自动激活 ObjectWrap
2007/03/09 Javascript
jQuery选择器的工作原理和优化分析
2011/07/25 Javascript
通过Javascript将数据导出到外部Excel文档的函数代码
2012/06/15 Javascript
Firefox中通过JavaScript复制数据到剪贴板(Copy to Clipboard 跨浏览器版)
2013/11/22 Javascript
jquery 绑定回车动作扑捉回车键触发的事件
2014/03/26 Javascript
Jquery api 速查表分享
2015/01/12 Javascript
Bootstrap组件之下拉菜单,多级菜单及按钮布局方法实例
2017/05/25 Javascript
Bootstrap popover 实现鼠标移入移除显示隐藏功能方法
2018/01/24 Javascript
微信小程序数据存储与取值详解
2018/01/30 Javascript
JavaScript实现的DOM树遍历方法详解【二叉DOM树、多叉DOM树】
2018/05/07 Javascript
vue+axios 前端实现的常用拦截的代码示例
2018/08/23 Javascript
对Vue table 动态表格td可编辑的方法详解
2018/08/28 Javascript
原生js实现照片墙效果
2020/10/13 Javascript
python中精确输出JSON浮点数的方法
2014/04/18 Python
Python操作MySQL简单实现方法
2015/01/26 Python
python制作英语翻译小工具代码实例
2019/09/09 Python
使用Python实现Wake On Lan远程开机功能
2020/01/22 Python
HTML5+CSS3网页加载进度条的实现,下载进度条的代码实例
2016/12/30 HTML / CSS
Staples美国官方网站:办公用品一站式采购
2016/07/28 全球购物
美国二手复古奢侈品包包购物网站:LXRandCo
2019/06/18 全球购物
JSF面试题:Jsf中导航的标签是什么
2013/04/20 面试题
计算机维护专业推荐信
2014/02/27 职场文书
食品工程专业求职信
2014/06/15 职场文书
私人房屋买卖协议书
2014/10/04 职场文书
党支部群众路线整改措施思想汇报
2014/10/10 职场文书
商场收银员岗位职责
2015/04/07 职场文书
超市店长竞聘书
2015/09/15 职场文书
2016最新离婚协议书范本及程序
2016/03/18 职场文书
个人售房合同协议书
2016/03/21 职场文书
开学季:喜迎新生,迎新标语少不了
2019/11/07 职场文书
励志语录:只有自己足够强大,才能不被别人践踏
2020/01/09 职场文书
JavaScript前端面试组合函数
2022/06/21 Javascript