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;");。
关于编码和编码转换,查看
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乱码 以及解决方案