ASP乱码问题

以GB2312为例,不乱码的基本前提:
加入代码声明 <%@ CODEPAGE="936" %>
文档保存的编码格式与代码声明一致

我们可选的设置:
Response.CodePage=936
Response.Charset="gb2312"
Session.CodePage=936

MSDN上的相关说明:
在Session.CodePage被任何程序声明的时候,如果Response.CodePage没有声明,则Response.CodePage会被Session.CodePage赋值。如果Session.CodePage没有被任何程序声明的时候, 而@CodePage已声明,则Response.CodePage会被@CodePage赋值,最后的页面动态内容部分按照Response.CodePage的值解释。

我的理解:要注意的是@CodePage和Response.CodePage的作用范围都是页面级,而Session.CodePage是全局的,如果从不同的编码页面之间跳转,Session.CodePage的设置就会扰乱编码,因此尽可能少用Session.CodePage,或者干脆不用。

不会乱码的代码:
程序代码
<%@ CODEPAGE=936 %>
<% Response.CodePage=936%>
<% Response.Charset="GB2312" %>

如果是UTF8编码:
程序代码
<%@ CODEPAGE=65001 %>
<% Response.CodePage=65001%>
<% Response.Charset="UTF-8" %>

你可能感兴趣的:(asp)