php ajax中文乱码怎么解决?

解决方法:1、所有数据统一使用utf-8编码,包括从数据库编码,php编码和前端编码;2、使用json_encode()、urlencode()对每个字符分别编码,然后使用urldecode()函数进行解码,再返回值即可。

php ajax中文乱码怎么解决?

推荐:《PHP视频教程》

在php中,从数据库提取数据之后,一般我们会一次提取多行数据,如果前端的js使用的是ajax与后端交互的话,php只能echo一个数据,但是我们的数据有多个,所以只能一个数组过去,这就使用到了json_encode()函数,json_encode()函数的意思是把数据转化成json数据。

我们看一下如何转换,

php数组:

立即学习“PHP免费学习笔记(深入)”;

首先我们在php里新建两个数组,一个包含中文,另一个包含数字或英文,最后输出看一下。 主意:关联数值更直观一点

$gg=array('a'=>'中国','b'=>'日本','c'=>'美国','d'=>'加拿大','e'=>'法国');$yy=array('f'=>'6','g'=>'7','h'>='8','i'=>'tom','j'=>'kevin');

登录后复制

只输出其中一个数组:

echo $json=json_encode($gg);

登录后复制

输出结果如下

{"a":"u4e2du56fd","b":"u65e5u672c","c":"u7f8eu56fd","d":"u52a0u62ffu5927","e":"u6cd5u56fd"}

登录后复制

两边分别是大括号,而且乱码

把两个数组同时放在一个数组同时输出

echo $json=json_encode(array($gg,$yy));

登录后复制

输出结果如下:

[{"a":"u4e2du56fd","b":"u65e5u672c","c":"u7f8eu56fd","d":"u52a0u62ffu5927","e":"u6cd5u56fd"},{"f":"6","g":"7","0":true,"i":"tom","j":"kevin"}]

登录后复制

我们可以看到,数组里的数组经过json格式之后,数据装在【】中括号里,里面的数组又分别在{}大括号里,但是还是乱码。

针对乱码问题,有两个方法,

方法一:所有数据统一使用utf-8编码,包括从数据库编码,php编码和前端编码。

方法二:使用下面几个函数,对每个字符分别编码:(有的符号貌似转义不成功,不提倡使用该方法)

function JSON($array) {     arrayRecursive($array, 'urlencode', true);     $json = json_encode($array);     return urldecode($json); }function arrayRecursive(&$array, $function, $apply_to_keys_also = false){     static $recursive_counter = 0;     if (++$recursive_counter > 1000) {         die('possible deep recursion attack');     }     foreach ($array as $key => $value) {         if (is_array($value)) {             arrayRecursive($array[$key], $function, $apply_to_keys_also);         } else {             $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]);             }         }     }     $recursive_counter--; }

登录后复制

使用这两个函数之后,输出结果为:

[{"a":"中国","b":"日本","c":"美国","d":"加拿大","e":"法国"},{"f":"6","g":"7","0":"1","i":"tom","j":"kevin"}]

登录后复制

更多编程相关知识,请访问:编程入门!!

以上就是php ajax中文乱码怎么解决?的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2521796.html

(0)
上一篇 2025年3月5日 17:00:37
下一篇 2025年2月24日 08:18:21

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论