之前在.asp文件的第一行加上:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> GB2312的。
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> UTF-8的。
然后在<Head></Head>标签内加入:
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> GB2312的。
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> UTF-8的。
就不会出现了,但今天在做 ajax 的时候,即使改了也不行,于是加入了:
<%Response.Charset = "GB2312"%>
PHP的:header('Content-Type:text/html;charset=GB2312');
JSP的:response.setHeader("Charset","GB2312");
原因:
1、xtmlhttp 返回的数据默认的字符编码是utf-8,如果客户端页面是gb2312或者其它编码数据就会产生乱码
2、post方法提交数据默认的字符编码是utf-8,如果服务器端是gb2312或其他编码数据就会产生乱码
解决办法有:
1、若客户端是gb2312编码,则在服务器指定输出流编码
2、服务器端和客户端都使用utf-8编码