我做php的,ajax传值乱码,乱码都是这种方式:%u5BB4,以%u开头的!请问怎么解决呀?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我做php的,ajax传值乱码,乱码都是这种方式:%u5BB4,以%u开头的!请问怎么解决呀?相关的知识,希望对你有一定的参考价值。
JQuery在Ajax提交出现中文乱码的解决办法:因为编码的原因
可能存在以下几点原因:
1.html的编码不统一:如页面用的GB2312,好像JQuery对它支持不太好。以前我一直都是用UTF-8的,一直都没有发现;
2.文件的编码,这个不好在
表面上看到,简体中文版的操作系统存的文本格式的文件默认是 GB2312,建议把文件换成UTF-8格式的
最简单的解决办法,把提交的中文文本用 JS的 escape 处理一下,就不会现出现乱码了。
如:
//保存数据
$.ajax(
url:"/guide/savecomments.aspx" ,
type:"POST" ,
dataType:"json" ,
data:"Action=SaveComment&CommNickName=" +escape
(CommNickName.val()) + "&CommContent=" +escape(CommContent.val()) + "&GuideID=" + GuideID.val() + "&ScoreLogType=<%=ScoreLogType %>",
success:function
(results)
alert(results.message);
); 参考技术A 我以前写过一篇文章:
ajax进行传值时候,无论提交页面是设置了强制gbk还是其他什么的,都会被js自动转成utf8编码格式的数据来传输(很好理解为什么,因为utf8表示的字符最多,所有的编码格式都能被转成utf8)
如果用ajax传值给gbk类型的处理页面,存入数据库或者作为获取值使用,就会乱码。因为gbk页面类型的页面,(在eclipse里右击文件名属性,就能看到页面编码,dw里菜单栏里 修改-页面属性也能看到)只会对gbk字符码正确处理。
如果处理页面是gbk格式的,需要用iconv或者mb_convert_encode 把aajax传过来的字符串转成gbk格式的字符。这2个函数本身差别不大,但iconv不能转换 - 号,遇到会无法执行整个转换,而mb_convert_encode 是比较新的特性,在某些服务器上默认并没有被开启,并且效率比较低。所以自己选择用哪个函数。
另外他们参数顺序正好完全相反。如:把utf8转成gbk:
iconv("utf-8","gbk",$str);
mb_convert_encode($str,"gbk","utf8"); 参考技术B 这个应该是GBK编码吧。你改成UTF-8试试。
老项目 Get方式 URL传值时中文乱码解决办法
1.说白了其实就是因为get方式请求,若url含非西欧编码必然会乱码,处理方式:request.setCharacterEncoding(“utf-8”);
将请求参数使用ISO-8859-1分解成字节数组,再将字节数组解码成字符串
通过ISO修改然后替换成utf8就行
String name = new String(request.getParameter("xxx").getBytes("ISO-8859-1"),"utf-8");
以上是关于我做php的,ajax传值乱码,乱码都是这种方式:%u5BB4,以%u开头的!请问怎么解决呀?的主要内容,如果未能解决你的问题,请参考以下文章