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截取后台登陆密码的代码
May 05 PHP
基于php-fpm 参数的深入理解
Jun 03 PHP
PHP在线生成二维码(google api)的实现代码详解
Jun 04 PHP
解析php时间戳与日期的转换
Jun 06 PHP
php制作unicode解码工具(unicode编码转换器)代码分享
Dec 24 PHP
PHP以mysqli方式连接类完整代码实例
Jul 15 PHP
PHP中加密解密函数与DES加密解密实例
Oct 17 PHP
php使用数组填充下拉列表框的方法
Mar 31 PHP
php实现的简单数据库操作Model类
Nov 16 PHP
PHP基于MySQLI函数封装的数据库连接工具类【定义与用法】
Aug 11 PHP
PHP环形链表实现方法示例
Sep 15 PHP
php判断文件上传图片格式的实例详解
Sep 30 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 Http_Template_IT类库进行模板替换
2009/03/19 PHP
php通过文件流方式复制文件的方法
2015/03/13 PHP
Apache启动报错No space left on device: AH00023该怎么解决
2015/10/16 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
2017/12/21 PHP
PHP日志LOG类定义与用法示例
2018/09/06 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
基于jQuery的360图片展示实现代码
2012/06/14 Javascript
javascript获取隐藏元素(display:none)的高度和宽度的方法
2014/06/06 Javascript
JavaScript生成福利彩票双色球号码
2015/05/15 Javascript
JQuery实现图片轮播效果
2015/09/15 Javascript
js实现网页图片延时加载 提升网页打开速度
2016/01/26 Javascript
jQuery插件echarts去掉垂直网格线用法示例
2017/03/03 Javascript
JQuery实现定时刷新功能代码
2017/05/09 jQuery
说说如何利用 Node.js 代理解决跨域问题
2019/04/22 Javascript
[20:30]职业巡回赛回顾
2018/08/09 DOTA
python 布尔操作实现代码
2013/03/23 Python
Python多线程编程(三):threading.Thread类的重要函数和方法
2015/04/05 Python
Python之父谈Python的未来形式
2016/07/01 Python
Python读取txt某几列绘图的方法
2018/10/14 Python
python将字符串list写入excel和txt的实例
2019/07/20 Python
使用 Django Highcharts 实现数据可视化过程解析
2019/07/31 Python
Python中sys模块功能与用法实例详解
2020/02/26 Python
如何在windows下安装Pycham2020软件(方法步骤详解)
2020/05/03 Python
利用Python实现Excel的文件间的数据匹配功能
2020/06/16 Python
浅析Python迭代器的高级用法
2020/07/16 Python
Python可以用来做什么
2020/11/23 Python
详解Selenium 元素定位和WebDriver常用方法
2020/12/04 Python
解决pytorch 模型复制的一些问题
2021/03/03 Python
CSS3实现的文本3D效果附图
2014/09/03 HTML / CSS
常用的HTML5列表标签
2017/06/20 HTML / CSS
求职简历推荐信范文
2013/12/02 职场文书
医院检讨书范文
2014/02/01 职场文书
学雷锋志愿者活动总结
2014/06/27 职场文书
优秀少先队辅导员事迹材料
2014/12/24 职场文书
优秀大学生事迹材料
2014/12/24 职场文书
简单聊聊TypeScript只读修饰符
2022/04/06 Javascript