解决ajax php中文乱码的方法

  介绍

这篇文章将为大家详细讲解有关解决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中文乱码的方法