完善解决ASP乱码问题

自开始写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" %>

转载于:https://www.cnblogs.com/shaoyun/archive/2008/11/13/1332638.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值