频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

如何解决XML HTTP提交过时返回的是乱码

来源: 作者: 出处:巧巧读书 2006-09-15 进入讨论组

精华网络内容 :http://www.qqread.com/network/

    下面是解决办法:
1,测试从服务器返回含有中文的 XML 字符串,使用 GET 方法来进行测试。
2,把含有中文字符串的 XML 提交到服务器,并在服务器进行处理后再以中文的形式返回到客户端,其中没有使用字符串解码的处理,大大提高了效率!

本例子需要两个文件:xmlencode.htm和xmlencode.asp
======================================

xmlencode.htm
============
<script>
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.open("GET","http://mengxianhui/asp/xmlencode.asp",false)
xmlhttp.setRequestHeader("Content-Type","text/xml")
xmlhttp.send()
alert(xmlhttp.responseXML.xml);
var s = '<?xml version="1.0"?><a> 如何解决XMLHTTP提交过时返回的是乱码,这是先提交上去,再返回的文字。 </a>'
xmlhttp.open("POST","http://mengxianhui/asp/xmlencode.asp",false)
xmlhttp.setRequestHeader("Content-Type","text/xml")
xmlhttp.send(s)
alert(xmlhttp.responseXML.xml);
</script>

xmlencode.asp
============
<%@ Language=VBScript %>
<%
Response.ContentType = "text/xml"
Response.CharSet = "GB2312"

Dim varCount,varReq,xmldom
varCount = Request.TotalBytes
varReq = Request.BinaryRead(varCount)

If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
Set xmldom = Server.CreateObject("MSXML2.DOMDocument")
xmldom.load varReq
Response.Write "<?xml version=""1.0"" encoding=""GB2312""?>" & xmldom.documentElement.xml
Else
Response.Write "<?xml version=""1.0"" encoding=""GB2312""?><a>如何解决XMLHTTP提交过时返回的是乱码,这是从服务器直接返回的文字。</a>"
End If
%>

以上在中文WIN2K+IE6和英文WINXP+IE6和IE5下测试通过!

  更多文章 更多内容请看XML详解开发应用HTTP协议专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
最新论坛文章
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章