asp学习网: 首页 >> javascript教程 >> ajax技术 >> asp ajax乱码 以及解决方案

asp ajax乱码 以及解决方案

XMLHTTP 返回的数据默认的字符编码是 UTF-8,如果前台页面是 GB2312 或者其它编码数据就会产生乱码。

POST 方法提交数据默认的字符编码是 UTF-8,如果后台是 GB2312 或其他编码数据就会产生乱码。





后台解决办法:

针对静态文件:

HTM、XML 文件是静态的,所以只要保存时保存为 UTF-8 编码就可以了,以 XHTML 为例:
<?xml version="1.0" encoding="gb2312"?>
改为
<?xml version="1.0" encoding="utf-8"?>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
改为
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


对于asp文件,注意保存时候选择编码方式:使用utf-8是最佳的选择.


前台解决办法:

针对 GET 数据:

对字符串进行编码,比如将 request.asp?a=汉字 编码为:request.asp?a=%E6%B1%89%E5%AD%97,这就需要一个函数。而在 JavaScript 中,幸运的是这个函数已经被集成,我们可以直接在 JavaScript 使用。我们建议使用 encodeURIComponent 对参数值进行编码,它可以编码所有的字符,而 encodeURI 不对“:”、“/”、“;”和“?”进行编码。对于参数值,显然应该是对所有字符进行编码。具体可见示例。

针对 POST 数据:

增加一句:xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");。



关于编码和编码转换,查看

UTF-8 and Unicode 各种中文编码问题详解

vbscript中gb2312转换为UTF-8编码的函数

http://www.aspxuexi.com/xmlhttp/about/2006-5-11/xmlhttp_code.htm  关于编码转换。

from:asp学习网/title:asp ajax乱码 以及解决方案/ time:2007-4-14 1:17:20

本文主题asp ajax乱码 以及解决方案

asp教程 ©2006-2007 aspxuexi.com | 关于站点 | 版权隐私 | 站内搜索
复制或者翻版 请于夜间进行