AJAX调用编码为gb2312的页面乱码的问题

esbat 2009-01-02 08:00:17
调用的页面的编码是gb2312,并且不能更改那个页面。
我的页面也用了gb2312编码
测试发现当调用的页面没有
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">时,
可以没有乱码的正常显示
但是当调用的页面有了这行代码时,无论怎么改我的页面似乎都会出现乱码
我用的是
var response = xmlHttp.responseText;
myDiv.innerHTML = response;
...全文
184 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
esbat 2009-01-03
  • 打赏
  • 举报
回复
泪奔 要是我能把调用的页面改成utf-8的我还在这费什么劲啊 算了 我查了好多资料 貌似网上也没有解决办法 结贴吧
Zijian_Zhang 2009-01-02
  • 打赏
  • 举报
回复
把它编码成X-WWW-Form-UrlEncoded的形式,还有,楼主把我发的5楼的代码,全部换成小写,这样更兼容一些浏览器。
Zijian_Zhang 2009-01-02
  • 打赏
  • 举报
回复
你尝试一下
xmlHttp.setRequestHeader("Content-Type","Application/X-WWW-Form-UrlEncoded;Charset=GB2312");
,如果还是不行,那也只有全部程序兼容UTF8了
Zijian_Zhang 2009-01-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 esbat 的回复:]
xmlHttp.setRequestHeader("Content-Type","charset=gb2312");
这个办法我早就试过了 无效 仍然是乱码
[/Quote]这个我不记得说,这个很多时候无效的,推荐用第二个办法,要不在Ajax被接受的服务器端,使用字符串编码转换再输出,这样是可以的,Ajax编码的问题是最糟糕的。
esbat 2009-01-02
  • 打赏
  • 举报
回复
xmlHttp.setRequestHeader("Content-Type","charset=gb2312");
这个办法我早就试过了 无效 仍然是乱码
seanzhang 2009-01-02
  • 打赏
  • 举报
回复
.NET技术交流群 - 60911340
Zijian_Zhang 2009-01-02
  • 打赏
  • 举报
回复
[Quote=引用楼主 esbat 的帖子:]
调用的页面的编码是gb2312,并且不能更改那个页面。
我的页面也用了gb2312编码
测试发现当调用的页面没有
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">时,
可以没有乱码的正常显示
但是当调用的页面有了这行代码时,无论怎么改我的页面似乎都会出现乱码
我用的是
var response = xmlHttp.responseText;
myDiv.innerHTML = response;
[/Quote]这个问题很常见的,也是比较难解决的,我的解决方法是:
1、在xmlhttp.open之后xmlhttp.send之前,使用设置头标的方法:
xmlHttp.setRequestHeader("Content-Type","charset=gb2312");

2、最有效的方法:把文件设置为UTF-8编码,网页设置成UTF8编码,然后调用,就无论如何都可以的了。

52,781

社区成员

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

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