歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> 關於Unix

ajax內容亂碼問題的解決辦法


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 中的內容。
Copyright © Linux教程網 All Rights Reserved