解决AJAX传送中文会导致乱码的问题

news/2024/7/2 17:47:48
关于在AJAX中GET回的ResponseText中文乱码的最简解决办法

用AJAX来GET回一个页面时,RESPONSETEXT里面的中文多半会出现乱码,这是因为xmlhttp在处理返回的 responseText的时候,是把resposeBody按UTF-8编码进解码考形成的,如果服务器送出的确实是UTF-8的数据流的时候汉字会正 确显示,而送出了GBK编码流的时候就乱了。解决的办法就是在送出的流里面加一个HEADER,指明送出的是什么编码流,这样XMLHTTP就不会乱搞 了。

PHP:header('Content-Type:text/html;charset=GB2312');
ASP:Response.Charset("GB2312")
JSP:response.setHeader("Charset","GB2312");

=======================================================

使用ajax获取服务器数据返回给客户端,出现中文乱码。在之前的一个ajax应用中指定codepage=936,将所有页面编码都指定为GB2312即可解决。
这次的应用中却无起作用了,经过多次的试验,客服端的编码应该绝对没有问题的。可以判断问题一定出在服务器端。稍微分析一下可知虽然服务器端指定了文件的 编码格式,但对于服务器输出流就成为了怀疑的对象。由于使用MS SQL2000,采用unicode编码,所以返回数据给客户端将会出现unicode编码的中文在gb2312编码页面显示的问题。于是在服务器端输出 流加一个HEADER:

ASP程序中加入<%Response.Charset = "GB2312"%>即解决了这个问题。
同样在php和jsp程序中的书写类似
PHP:header('Content-Type:text/html;charset=GB2312');
JSP:response.setHeader("Charset","GB2312");

ajax产生乱码的原因整理如下
1、xtmlhttp 返回的数据默认的字符编码是utf-8,如果客户端页面是gb2312或者其它编码数据就会产生乱码
2、post方法提交数据默认的字符编码是utf-8,如果服务器端是gb2312或其他编码数据就会产生乱码
解决办法有:
1、若客户端是gb2312编码,则在服务器指定输出流编码
2、服务器端和客户端都使用utf-8编码


http://www.niftyadmin.cn/n/1734220.html

相关文章

SQL server的下载

本文链接&#xff1a;https://mp.csdn.net/mdeditor/102479776 这里&#xff0c; 推荐一个很好用&#xff0c;很良心的微信公众号叫做&#xff1a;软件安装管家 关注之后&#xff0c; 点击软件目录里面的软件目录&#xff0c;然后往下拉&#xff0c;就可以看到 其中的&#xf…

c语言打出爱心中间可以弄字,c语言 如下 输出一个心形,然后想在心形内部加入汉字,如何修改? #includ...

满意答案hrtyd4fr62016.05.13采纳率&#xff1a;41% 等级&#xff1a;6已帮助&#xff1a;507人##C#include #include using namespace std;int main(){double x, y,size10;char ch*;string message("fateland");int print_line 4;if(message.length() % 2 ! 0) …

python列表和字典的增删改查_python序列(列表,元组,字典)的增删改查

操作字典方法示例增加dict[key]value通过赋值的方法增加元素eg.>>> dict{name:li,age:1}>>> dict[class]first>>> dict{name: li, age: 1, class: first}dict.update(dict_i)把新的字典dict_i的键/值对更新到dict里(适用dict_i中包含与dict不同的ke…

Ajax表单提交数据出现乱码和解决办法

> >更多精彩技术文章>//要传递的参数var queryString "firstName" firstName "&lastName" lastName "&birthday" birthday; function //GET方式提交 doRequestUsingGET() { createXMLHttpRequest(); …

单片机DA转换实验c语言编程,单片机DA转换实验报告

实验九D/A实验报告㈠实验目的1.掌握单片机与D/A的接口及编程方法&#xff1b;2.通过D/A动态波形输出进一步理解D/A的工作原理&#xff1b;3.结合实验六中的A/D来检验软硬件的正确性。4.进一步了解单片机系统地址分配概念。㈡实验器材1.G6W仿真器一台2.MCS—51实验板一台3.PC机一…

我的SQL学习笔记

本博客主要用于自己期末复习sql代码使用&#xff0c;同时也希望自己的这点微薄的笔记可以帮到别人吧。有什么写得不好或者写得不对的地方&#xff0c;欢迎各位大佬提出批评指正&#xff0c;谢谢。 SQL server的下载 1.如何创建自己的数据库和日志文件 2.如何创建表 3.如何添加…

python 远程桌面 命令行_python学习笔记-Pycharm远程连接服务器的Python虚拟环境(Virtualenv)...

Virtualenv可以作为一个独立的Python虚拟环境工具&#xff0c;并能够建立多个相互独立&#xff0c;互不影响的Python工作环境。主要解决在运行多个项目时&#xff0c;由于它们对应的运行环境需求不同&#xff0c;可能会导致项目无法正常运行的问题。服务器设置内容&#xff1a;…

10.select时in和not in的使用

对于in&#xff0c;其实就是多个or条件的缩写。 比如现在&#xff0c;我们想从学生表中选择所有Dno ‘D01’ 跟 Dno D03’的女生。 那么&#xff0c;我们输入代码&#xff1a; select * from 学生 where Dno in(D01,D03) and Ssex 女格式是&#xff1a; select * from [表…