用MSXML2.XMLHttp加载带中文的XML文件,responseXML.xml = '',强制加载报错“Switch from current encoding to specified encoding not supported”

mzhao 2008-07-07 04:46:11
我用javascript写了一个AJAX的Htc文件,调试时发现XmlHttp.responseXML一直没有内容(即responseXML.xml = ''),parseError=0。
后来我试着用alert(XmlHttp.responseText);发现内容中的中文都变成了'?'.
我又试了试使用以下代码:
var body = XmlHttp.responseXML;
body.loadXML(XmlHttp.responseText);
alert(body.parseError);
alert(body.parseError.reason);
提示:-1072896657;Switch from current encoding to specified encoding not supported
看起来是编码不对。
我又试着将XML文件改成utf-8格式的英文文件,同样报错。
不知是XmlHttp的bug还是我写的代码有问题,但是我没有发现XmlHttp加载时能设置charset呀?

我用的是IE7.0,加载任何其他带中文的Ajax页面都没问题。

注:1、不要让我使用setRequestHeader( "Content-Type ", "application/x-www-form-urlencoded "); ,我试过,不管用
2、不要让我使用Microsoft.XMLDOM,应为我原来的程序就是用它的(没有以上错误),可到了IE7以后不被支持了。
...全文
227 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
amangoing 2008-12-25
  • 打赏
  • 举报
回复
mzhao 2008-07-16
  • 打赏
  • 举报
回复
终于搞定了,原来是MIME类型的问题,我用的是Asp动态生成Xml,没想到不设置Response.ContentType = "text/xml"就不行。看来下次要问清楚一点。

孟子E章 2008-07-14
  • 打赏
  • 举报
回复
请更改一下页面、服务器输出xml 等等的编码方式进行测试。
mzhao 2008-07-14
  • 打赏
  • 举报
回复
怎么解决不了?没人碰到这个问题?
chenguang79 2008-07-14
  • 打赏
  • 举报
回复
没有遇到过。帮楼主顶一下
mzhao 2008-07-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 net_lover 的回复:]
你直接用浏览器浏览你的地址可以看到xml吗
[/Quote]
可以
mzhao 2008-07-07
  • 打赏
  • 举报
回复
很简单,body.xml==''
孟子E章 2008-07-07
  • 打赏
  • 举报
回复
var body = XmlHttp.responseXML;
body 已经是XML对象了,为啥还要loadXML
孟子E章 2008-07-07
  • 打赏
  • 举报
回复
你直接用浏览器浏览你的地址可以看到xml吗
mzhao 2008-07-07
  • 打赏
  • 举报
回复
我试过(在服务器端)Utf-8编码;gb2312编码,都不行
tantaiyizu 2008-07-07
  • 打赏
  • 举报
回复
编码转换下吧 ,不要什么什么的。
mzhao 2008-07-07
  • 打赏
  • 举报
回复
补充:这里的问题是,XML数据根本无法加载,不是中文显示乱码

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧