完善解决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,或者干脆不用。
不会乱码的代码:
程序代码
如果是UTF8编码:
程序代码
以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" %>
<% Response.CodePage=936%>
<% Response.Charset="GB2312" %>
如果是UTF8编码:

<%@ CODEPAGE=65001 %>
<% Response.CodePage=65001%>
<% Response.Charset="UTF-8" %>
<% Response.CodePage=65001%>
<% Response.Charset="UTF-8" %>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端