失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 如何解决php ajax乱码问题

如何解决php ajax乱码问题

时间:2024-06-18 01:01:44

相关推荐

如何解决php ajax乱码问题

后端开发|PHP问题

php,ajax

后端开发-PHP问题

微商发货系统源码,vscode浏览器版本,ubuntu文件死机,查看tomcat磁盘使用,北京有毒爬虫,单引号 数据库 php,江苏网站seo哪里好,婚庆网站建设方案,开源后台管理模板lzw

本文操作环境:windows7系统、PHP7.1版,DELL G3电脑

网上注册预约考试系统源码,vscode离线打包,u盘启动ubuntu黑屏,tomcat开发插件,sqlite s载,云服务器技术,pdf插件 javascript,前端页面模板框架,带关键字参数的爬虫,php315,网络营销培训seo,监控企业网站模板,网页设计的模板及代码,织梦系统模板风格修改,css 页面居中,完美支付内部管理系统教程,php万能小偷程序源码lzw

php使用ajax中文乱码问题

网狐6603源码提取密码,vscode无法识别vue项目,ubuntu smtp,lr监控tomcat,sqlite begin,关于动态网页设计,数据库跟网站内容,西部数码服务器托管,大漠插件视频教程下载,dojo前端框架,爬虫赚百万,php mq,seo名言,springboot对接sdk,css h标签,学生个人博客网站模板,代码网页,bootstrap用户中心模板,网站后台fpt,订购页面html,如何用c 写仓库管理系统,天天团购程序lzw

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

我们看一下如何转换,

php数组:

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

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

只输出其中一个数组:

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(array($gg,$yy));

输出结果如下:

[{"a":"\u4e2d\u56fd","b":"\u65e5\u672c","c":"\u7f8e\u56fd","d":"\u52a0\u62ff\u5927","e":"\u6cd5\u56fd"},{"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视频教学》

如果觉得《如何解决php ajax乱码问题》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。