【问题标题】:ASP classic: String encodingASP 经典:字符串编码
【发布时间】:2011-07-20 09:26:05
【问题描述】:

昨天我在重构一个旧的 ASP 经典 Web 应用程序的起始页时遇到了一个非常奇怪的错误。 但在我解释问题之前,我必须先解释一下网站是如何构建的。

网络本身是由保存为 ANSI windows 1252 的 ASP 页面组成的。我猜发送到浏览器的输出被编码为代码页 1252,因为在响应标头和 HTML HEAD 标记中都没有声明编码。

问题:

当我重构登录页面时(由于安全问题),我做了以下事情:

  • 将 ASP 文件转换为 utf-8
  • 在页面顶部添加了<%@ Language="VBScript" @CODEPAGE=65001 %>
  • <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 添加到HTML HEAD

登录页面显示得很好。 但是!网站的其余部分现在在所有页面(当然除了登录页面)上都有编码问题(当显示在网络浏览器上时)。

怎么可能?我没有更改任何其他页面,在登录页面中进行的编码设置应该只影响该单个页面。

请赐教。请! :-)

【问题讨论】:

    标签: character-encoding asp-classic browser


    【解决方案1】:

    因为代码页存储在会话中,并且在登录页面上正在更改。如果您清除 cookie 或打开隐身浏览器,问题应该会消失,直到您再次返回登录页面。

    【讨论】:

    • 啊,所以通过使用@CODEPAGE=65001我为会话设置代码页,从而影响所有页面?您认为使用response.codepage=1252 会更好吗?
    • 是的,因为 response.codepage 只适用于当前响应。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-23
    • 2016-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多