测试通过系统:WinXP 中文Pro, XML4.0 SP2,C#
尝试过XMLHTTP作客户端,然后尝试与服务器端ASP交互的程序员,我认为都很有思路,当然这也是在自夸:)。但最头疼的问题恐怕就是中文乱码的问题,查了很多资料,MSDN,互联网上的,尝试了很多方法都不太奏效,还好没有气馁,现在,最新的最简单的解决办法闪亮登场:
把客户端要传输的XML的头由:
<?xml version="1.0" encoding="gb2312" ?>
改为:
<?xml version="1.0" encoding="utf-8" ?>
服务器端的ASP程序发送给客户端XML结果时需要加:
Response.ContentType = "text/xml"
Response.CharSet = "gb2312"
客户端的程序取返回结果用XmlDom.loadXml(xmlhttp.responseText)就可以了。
============================================================================
以下分析可能的原因:
可能是我们的操作系统本身使用UTF-8编码的原因。
把所有Request.ServerVariables写到一个文本文件中你会发现类似这些:
ALL_HTTP:HTTP_ACCEPT:*/*
HTTP_ACCEPT_LANGUAGE:zh-cn
HTTP_CONNECTION:Keep-Alive
HTTP_HOST:localhost
HTTP_USER_AGENT:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1)
HTTP_COOKIE:ASPSESSIONIDAQBCSQRA=FNEHNOCCMHECCOPIOKKECEFM
HTTP_CONTENT_LENGTH:94
HTTP_CONTENT_TYPE:text/xml;charset=gb2312
HTTP_ACCEPT_ENCODING:gzip, defl