ASP页面乱码及AJAX发回中文乱码解决方法

  之前做ASP页面各种乱码,页面刷新就乱码或者链接就乱码,昨晚去问了下度娘,总结出一个解决办,在所有ASP页面之前加上 <% @ CODEPAGE = "65001" LANGUAGE = "VBSCRIPT" %> <% Response.CODEPAGE = 65001%> ,65001指的是UTF-8编码格式 GB2312是936,原因就是你在进入UTF-8页面的时候 其他程序没有声明Response.CodePage 而是 Session.CodePage立即被赋值了 (65001或936因版本不同赋值不一样),接着进入另一页的时候 另一页的Response.CodePage立即被Session.CodePage赋值 于是如果那个页得@ CODEPAGE = 936 的话 你这个页的 Response.CodePage 被赋值成了 65001肯定会出乱码的 所以 在页面的开头先统一写好编码 。

  然后昨晚后来又碰到一个问题是AJAX返回中文的时候显示乱码而 2个页面的编码都是一样的UTF-8 为毛会出现乱码 查了度娘是说在AJAX处理页面加上 <% Response.Charset = "UTF-8"%> 结果页面显示不出内容 自己研究了下估计是数据库的数据编码问题,因为ACCESS数据编码是根据你写进去数据时的编码我写进去的时候是GB2312现在用UTF-8格式的编码解码肯定会乱码 怎么办呢 把<% Response.Charset = "GB2312" %> 然后AJAX中文就返回正常了 . 这里讲下 Charset属性在W3C的解释是 向页面的Response对象中content-type 头部追加字符集名称。

  添加 <% Response.Charset = "GB2312"%> 

  页面输出显示

  <%content-type:text/html; charset=GB2312%>

我估计是Charset将字符集改成了GB2312所以可以接受GB2312编码的数据所以就不会乱码了

posted on 2011-06-25 23:16  成就地带  阅读(479)  评论(0编辑  收藏  举报