搜索
首页后端开发php教程php中json_encode UTF-8中文乱码的更好解决方法_php技巧

最近在接口代码当中用到过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) {
(www.jb51.net)
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:http://www.jb51.net/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进行编译呼。

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
解决PHP Dompdf中文乱码问题的方法解决PHP Dompdf中文乱码问题的方法Mar 05, 2024 pm 03:45 PM

解决PHPDompdf中文乱码问题的方法PHPDompdf是一个用于将HTML文档转换为PDF文件的工具,它的功能强大且易于使用。然而,在处理中文内容时,有时会遇到中文乱码的问题。本文将介绍一些解决PHPDompdf中文乱码问题的方法,并提供具体的代码示例。一、使用字体文件在处理中文内容时,一个常见的问题是Dompdf默认不支持中

终极解决PyCharm中文乱码问题的方法终极解决PyCharm中文乱码问题的方法Jan 27, 2024 am 08:00 AM

解决PyCharm中文乱码问题的终极方法,需要具体代码示例引言:PyCharm作为一款常用的Python集成开发环境(IDE),具有强大的功能和友好的用户界面,被广大开发者所喜爱和使用。然而,PyCharm在处理中文字符时,有时可能会遇到乱码的问题,给开发和调试带来一定的困扰。本文将介绍如何解决PyCharm中文乱码问题,并给出具体的代码示例。一、设置项目编

MySQL安装中文乱码的常见原因及解决方案MySQL安装中文乱码的常见原因及解决方案Mar 02, 2024 am 09:00 AM

MySQL安装中文乱码的常见原因及解决方案MySQL是一种常用的关系型数据库管理系统,但在使用过程中可能会遇到中文乱码的问题,这给开发者和系统管理员带来了困扰。中文乱码问题的出现主要是由于字符集设置不正确、数据库服务器和客户端字符集不一致等原因导致的。本文将详细介绍MySQL安装中文乱码的常见原因及解决方案,帮助大家更好地解决这个问题。一、常见原因:字符集设

ajax传递中文乱码怎么办ajax传递中文乱码怎么办Nov 15, 2023 am 10:42 AM

ajax传递中文乱码的解决办法:1、设置统一的编码方式;2、服务器端编码;3、客户端解码;4、设置HTTP响应头;5、使用JSON格式。详细介绍:1、设置统一的编码方式,确保服务器端和客户端使用相同的编码方式,通常情况下,UTF-8是一种常用的编码方式,因为它可以支持多种语言和字符集;2、服务器端编码,在服务器端,确保将中文数据以正确的编码方式进行编码,再传递给客户端等等。

PHP网页中文乱码怎么办?一篇完整解决方案PHP网页中文乱码怎么办?一篇完整解决方案Mar 26, 2024 pm 03:27 PM

PHP网页中文乱码问题是在网页显示中出现中文字符显示为乱码的情况,这种情况通常是由于编码不一致或者未设置字符集导致的。解决PHP网页中文乱码问题需要从多个方面入手,以下是一些常见的解决方案以及具体的代码示例。设置PHP文件编码:首先确保PHP文件本身的编码是UTF-8,可以在编辑器中设置保存时使用UTF-8编码,或者在PHP文件头部添加如下代码设置编码:&l

解决Linux系统中文乱码问题的方法解决Linux系统中文乱码问题的方法Feb 19, 2024 am 09:22 AM

Linux中文乱码问题是许多中文使用者在使用Linux系统时经常遇到的一个困扰。中文乱码的主要原因是因为Linux系统默认使用的字符编码是UTF-8,但是某些软件或应用程序可能不兼容UTF-8编码,导致中文无法正确显示。解决这个问题的方法有很多,下面将详细介绍几种常见的解决方法,并提供具体的代码示例。修改终端字符编码设置:终端的字符编码设置决定了终端能够正确

有效解决Eclipse中文乱码问题的实用方法有效解决Eclipse中文乱码问题的实用方法Jan 03, 2024 pm 05:50 PM

快速解决Eclipse中文乱码的实用技巧,需要具体代码示例概述:Eclipse是一款广泛使用的集成开发环境(IDE),它不仅支持多种编程语言的开发,也支持多种操作系统。然而,有时在使用Eclipse过程中,我们可能会遇到中文乱码的问题,这给我们的开发工作带来了不便。本文将介绍一些实用技巧,帮助我们快速解决Eclipse中文乱码问题,并附上具体的代码示例。一、

有效的方法解决matplotlib中文乱码问题有效的方法解决matplotlib中文乱码问题Jan 13, 2024 am 11:03 AM

快速解决matplotlib中文乱码的有效方法导语:matplotlib是Python中常用的绘图库,然而在使用中文进行标注和显示时,经常会出现乱码的情况。本文将介绍一些有效的解决方法,并提供具体的代码示例。一、设置字体matplotlib默认使用系统字体进行中文显示,但是系统字体往往不包含中文字符,因此需要手动设置合适的中文字体。首先需要确认计算机中是否已

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器