介绍
这篇文章将为大家详细讲解有关解决ajax php中文乱码的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
ajax php中文乱码的解决办法:1、将所有数据统一使用utf - 8编码;2、使用”功能JSON数组($){}”和“arrayRecursive”两个函数,对每个字符分别编码即可。
引用><强> php使用ajax中文乱码问题强>
在php中,从数据库提取数据之后,一般我们会一次提取多行数据,如果前端的js使用的是ajax与后端交互的话,php只能呼应一个数据,但是我们的数据有多个,所以只能一个数组过去,这就使用到了json_encode()函数,json_encode()函数的意思是把数据转化成JSON数据。
我们看一下如何转换,
php数组:
首先我们在php里新建两个数组,一个包含中文,另一个包含数字或英文,最后输出看一下。主意:关联数值更直观一点
$ gg=数组(& # 39;一个# 39;=祝辞& # 39;中国& # 39;,& # 39;b # 39;=祝辞& # 39;日本& # 39;,& # 39;c # 39;=祝辞& # 39;美国& # 39;,& # 39;d # 39;=祝辞& # 39;加拿大& # 39;,& # 39;e # 39;=祝辞& # 39;法国& # 39;); $ yy=阵列(& # 39;f # 39;=祝辞& # 39;6 & # 39;,& # 39;舌鳎# 39;=祝辞& # 39;7 & # 39;,& # 39;h # 39;祝辞=& # 39;8 & # 39;,& # 39;我# 39;=祝辞& # 39;汤姆# 39;,& # 39;强生# 39;=祝辞& # 39;凯文# 39;);只输出其中一个数组:
echo $ json=json_encode (gg);输出结果如下
{“a":“\ u4e2d \ u56fd",“b":“\ u65e5 \ u672c",“c":“\ u7f8e \ u56fd",“d":“\ u52a0 \ u62ff \ u5927",“e":“\ u6cd5 \ u56fd"}两边分别是大括号,而且乱码
把两个数组同时放在一个数组同时输出
echo $ json=json_encode(数组(gg, yy美元));输出结果如下:
[{“a":“\ u4e2d \ u56fd",“b":“\ u65e5 \ u672c",“c":“\ u7f8e \ u56fd",“d":“\ u52a0 \ u62ff \ u5927",“e":“\ u6cd5 \ u56fd"}, {“f":“6“,“g":“7“,“0”:真的,“我:“tom",“j":“kevin"}]我们可以看的到,数组里的数组经过json格式之后,数据装在中括号里,里面的数组又分别在{}大括号里,但是还是乱码。
针对乱码问题,有两个方法,
方法一:所有数据统一使用utf - 8编码,包括从数据库编码,php编码和前端编码。
方法二:使用下面两个函数,对每个字符分别编码:(有的符号貌似转义不成功,不提倡使用该方法)
函数json数组($){ arrayRecursive($数组,& # 39;urlencode& # 39;, true); 美元$ json=json_encode(数组); 返回urldecode (json)美元; } 数组,美元函数arrayRecursive(和函数,$ apply_to_keys_also=false) { 静态recursive_counter美元=0; 如果(+ + $ recursive_counter祝辞1000){ 死(& # 39;可能深度递归攻击# 39;); } foreach(数组作为关键=美元比;美元值){ 如果(is_array(美元值)){ arrayRecursive(数组($ key),函数,美元apply_to_keys_also美元); 其他}{ 数组[$ key]=函数美元(美元值); } 如果(apply_to_keys_also美元,,is_string(键)美元){ new_key=函数美元($键); 如果美元($ new_key !=键){ 数组[$ new_key]=美元数组(美元关键); 设置数组($(美元关键)); } } } recursive_counter——美元; }使用这两个函数之后,输出结果为:
[{“a":“中国“,“b":“日本“,“c":“美国“,“d":“加拿大“,“e":“法国“},{“f":“6“,“g":“7“,“0”;:“1“,“我:“tom",“j":“kevin"}]关于解决ajax php中文乱码的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。
解决ajax php中文乱码的方法