- 时间:2021-06-22 02:45 编辑: 来源: 阅读:
- 扫一扫,手机访问
摘要:Jquery乱码的一次解决过程 图解教程
[url=http://www.1sucai.cn/upload/2010-2/20100220102018345.gif][img]http://files.jb51.net/upload/2010-2/20100220102019965.gif[/img]
[/url]
[url=http://www.1sucai.cn/upload/2010-2/20100220102019766.gif][img]http://files.jb51.net/upload/2010-2/20100220102019842.gif[/img]
[/url]
简单的请求,简单的响应,但是乱码产生了
[url=http://www.1sucai.cn/upload/2010-2/20100220102019731.gif][img]http://files.jb51.net/upload/2010-2/20100220102019176.gif[/img]
[/url]
Why?
乱码之所以产生,原因很简单,无非就是编码表用错了,如传的是big5字符,接收却使用utf-8,或utf-8编码,却用GB2312解码。
好吧,先确认一下是否请求过程中产生的乱码
[url=http://www.1sucai.cn/upload/2010-2/20100220102019472.gif][img]http://files.jb51.net/upload/2010-2/20100220102019707.gif[/img]
[/url]
那我发过去的是乱码吗?
[url=http://www.1sucai.cn/upload/2010-2/20100220102019465.gif][img]http://files.jb51.net/upload/2010-2/20100220102019967.gif[/img]
[/url]
打开C:/tmp/下的test.txt
[url=http://www.1sucai.cn/upload/2010-2/20100220102019914.gif][img]http://files.jb51.net/upload/2010-2/20100220102019394.gif[/img]
[/url]
这是什么编码,猜一猜?
[url=http://www.1sucai.cn/upload/2010-2/20100220102019529.gif][img]http://files.jb51.net/upload/2010-2/20100220102019972.gif[/img]
[/url]
看来客户端没错,且正确地到了服务器端了,那应该是asp.net搞错了编码了,HttpRequest类里找下有没有相关的Encoding相关的属性
[url=http://www.1sucai.cn/upload/2010-2/20100220102019345.gif][img]http://files.jb51.net/upload/2010-2/20100220102019649.gif[/img]
[/url]
[url=http://www.1sucai.cn/upload/2010-2/20100220102019889.gif][img]http://files.jb51.net/upload/2010-2/20100220102019910.gif[/img]
[/url]
看看web.config吧
[url=http://www.1sucai.cn/upload/2010-2/20100220102019722.gif][img]http://files.jb51.net/upload/2010-2/20100220102019849.gif[/img]
[/url]
测试一下修改成utf-8看看
[url=http://www.1sucai.cn/upload/2010-2/20100220102019958.gif][img]http://files.jb51.net/upload/2010-2/20100220102019809.gif[/img]
[/url]
原因成功找到,看来就是客户端传utf-8,然后服务器端big5接收产生问题
不过这个专案不能这样解决,因为这个旧专案跑了很久了,改这里可能影响以前的其它程式,那就改客户端吧,设置请求属性为utf-8,让asp.net不迷茫
修改ajax请求代码,设定charset属性
[url=http://www.1sucai.cn/upload/2010-2/20100220102019876.gif][img]http://files.jb51.net/upload/2010-2/20100220102019434.gif[/img]
[/url]
问题得以解决,不过最近也有在vs2005中使用jquery,没有发生乱码,可能是vs2005已经默认为utf-8了(有空再去找下是在哪里默认的,或那位TX告知一下)
vs.net2003默认是本机操作系统的编码,如big5,gb2312,因此常常发生乱码问题.
另,分享一个简单的文本文件的乱码查看方法.
[url=http://www.1sucai.cn/upload/2010-2/20100220102019807.gif][img]http://files.jb51.net/upload/2010-2/20100220102019417.gif[/img]
[/url]
[url=http://www.1sucai.cn/upload/2010-2/20100220102019867.gif][img]http://files.jb51.net/upload/2010-2/20100220102019965.gif[/img]
[/url]
对于一些不是以txt结尾的文本档(如aspx,cs),可以先将后缀改为txt,然后再打开IE看,否则IE会不认得,直接下载
图片太多,请网速慢的TX原谅~~