红联Linux门户
Linux帮助

ajax内容乱码问题的解决办法

发布时间:2007-04-14 00:37:29来源:红联作者:catchingfish
1、最近一次升级时,系统部分功能采用ajax 技术。linux, window, solaris9 下支持GBK 编码,没有问题。但在hpux 下出现了一个比较奇怪的错误。

hpunix 下的字符集支持 gb18300, zh_CN.hp15CN 但和GBK 兼容性有点问题(错码,缺码)。并且数据库使用的是zhsgbk 编码。为了最少的改动系统。将系统的类库使用iso8859-1 编译后,jsp 文件去掉 <@page contenttype 头,系统运行基本稳定。 但是在ajax 下主要取得数据总是有乱码。 在window.open 时显示是对的。 下载下来后,字节完全相同。猜测是Microsoft.XMLHTTP 和浏览器的处理方式不同。

通过java 写了个测试程序。
得到的输出如下
ISO8859-1 下

HTTP/1.0 200 OK
Server: Resin/2.1.16
Cache-Control: no-cache
Expires: Thu, 01 Dec 1994 16:00:00 GMT
Set-Cookie: JSESSIONID=aLpTk5jxrqN9; path=/
Content-Type: text/html
Content-Length: 14
Date: Fri, 06 Apr 2007 10:20:16 GMT
11(测试)(自科)

GBK 系统下

HTTP/1.0 200 OK
Server: Resin/2.1.16
Cache-Control: no-cache
Expires: Thu, 01 Dec 1994 16:00:00 GMT
Set-Cookie: JSESSIONID=akbSVv45sIza; path=/
Content-Type: text/html;charset=GBK
Content-Length: 8
Date: Fri, 13 Apr 2007 10:01:19 GMT
11(测试)
通过 jsp 文件中设置
<%
response.addHeader("Content-Type","text/html;charset=GBK");
%>
解决了此问题。 由此可以看出, Microsoft.XMLHTTP 处理字符时是使用 Content-Type; charset 中的内容。
文章评论

共有 0 条评论