关于Ajax responseText 中文乱码问题
来源:asp之家 发布时间:2008-02-12 16:30:00
标签:responseText,乱码,中文,ajax
前一段时间碰到这样的的问题,Ajax从后台得到的中文信息怎么都是空。后来到网上搜资料,大多是以下这样。
用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");
asp之家注:其实可以在传送数据前(不管中文或英文)使用escape(str)来编码处理一下,asp服务器端接收时使用unescape(str)解码,然后处理,当返回数据时在使用escape加密,客户端接收时再解密就不会出现中文乱码了。
相关文章推荐:一个用Ajax做的用户名验证程序
但是我按照在这种方法,无论如何都没有成功过。真是误人子弟啊。先把我的代码贴出来。
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
...{
/** *//**
* 设置请求的编码格式,因为Ajax程序默认都是通过UTF-8编码传递字符,所以在接收字符前,请设置请求的编码格式为 UTF-8
*/
request.setCharacterEncoding("UTF-8");
/** *//**
* 设置输出信息格式,因为Ajax在接收返回的信息的时候,默认的也是UTF-8编码,所以返回时,请设置编码格式为UTF-8 如果你要返回的是
* XML 信息,即Ajax调用responseXML 则用下面语句代替 该语句
* response.setContentType("text/xml;charset=UTF-8");//返回的xml文件
*/
response.setContentType("text/text;charset=UTF-8"); // 返回的是文本信息
PrintWriter out = response.getWriter();
// out.println("</response>");
if (rs == true)
out.write("<ReturnInfor><return>true</return><infor>用户名称不能为空</infor></ReturnInfor>");
out.close();
}
前台很简单:
<script language="javascript">
alert( "返回的信息为:"+xmlReq.responseText )
</script>
就是这样,无论如何都得不到中文。不知何故。
后来把后台的
response.setContentType("text/text;charset=UTF-8");
返回的是文本信息,改成 XML 传递,则运行正常。
后来发现的确如此 responseText 不支持中文。至少在我的程序里面是这样子的。希望大家可以借鉴以下。
0
投稿
猜你喜欢
- 当系统出现故障时,只要存在数据日志那么就可以利用它来恢复数据解决数据库故障。作为SQL Server数据库管理员,了解数据日志文件的作用,以
- 如下所示:# 计算0到100之间的之间所有的数字累计求和结果# 定义最终结果的变量result = 0# 定义一个整数的变量来记录循环次数i
- 网络爬虫由于一个ip频繁访问同一网站,容易返回456或者被长时间封禁。特别的本机有socks5客户端的设置如下,前提是已经安装了socks5
- 似乎有一段时间没有更新博客了,这里就写点小功能,轻松获得电脑任意路径下的文件及文件夹,并将其写入word,以下是主要代码:**import
- 以下内容在python中完全可以接受:1、将整数的字符串表示形式传递给 int2、将float的字符串表示形式传递给 float但是,如果你
- 本文实例讲述了Python实现批量修改文件名的方法。分享给大家供大家参考。具体如下:下载了评书《贺龙传奇》,文件名中却都含有xxx有声下载,
- 现状≠将来?程序员做设计本身就很悲哀,纠结于客户与坚持之间就更是如此。无论我今后的路会怎么走,我想始终不变的事情就是与客户博弈了。无论是放弃
- 今天碰到一个很有意思的问题,需要将普通的 Unicode字符串转换为 Unicode编码的字符串,如下:将 \\u9500\\u552e 转
- MySQL数据库应用广泛,尤其对于JAVA程序员,不会陌生。如果在不想采购云数据库的情况下,可以自行安装MySQL数据库。文章将介绍,手动在
- 最近的业务中涉及到这样一个需求,在线培训的系统需要知道用户对某个在线预览的页面追踪用户的预览时长。初步我们首先想到借助 Vue 页面的生命周
- 解决方案1.安装django-cors-headerspip install django-cors-headers2.配置settings
- 相信有些小伙伴,在没接触py之前,肯定都是有所准备的,想学语言由来已久,拿小编来说,一直趁着空挡就开始找课程学习,用记下学习历程,还会向一些
- 概述:最近在赶毕业设计,遇到一个问题,爬虫模块我用PyQt5写了图形界面,为了将所有的输出信息都显示到图形界面上遇到了问题。先演示一下效果最
- 在vue项目中, mock数据可以使用 node 的 express模块搭建服务1. 在根目录下创建 test 目录, 用来存放模拟的 js
- 一、安装apt-get install mysql-server 需要设置账号密码apt-get isntall mysql-clienta
- 最近面试遇到了一道面试题,顿时有点迷糊,只说出了思路,后来百度了一下,整理了一下思路,于是记录下来,方便以后学习。(面试题请参见附件) 相关
- 本文实例为大家分享了asp.net存储和读取数据库图片的具体代码,供大家参考,具体内容如下1. 创建asp.net web窗体项目代码如下:
- 两种方法,一种是为表空间增加数据文件: alter tablespace users add datafile '/opt/orac
- 一点背景知识OpenCV 是一个开源的计算机视觉和机器学习库。它包含成千上万优化过的算法,为各种计算机视觉应用提供了一个通用工具包。根据这个
- 我们都知道在函数中定义的局部变量在声明他的函数体以及其嵌套的函数内始终是有定义的,并且在函数的作用域链上始终会有个对象指向全局对象,使函数能