经典的 ASP CHR() 函数问题



我试图在ASP中实现RC4 encription,但我在chr((函数上发现了一个奇怪的行为。

但问题与 RC4 脚本无关,而是与我无法解决的问题有关。

更不用说我做过的所有测试,我可以用一个非常简单的形式重现这个问题:

我只是写了

<%=chr(146)%>

在 2 页中,假设 L2.asp 和 L3.asp

第 L2 页.asp因此显示了 HTML ' &rsquo;

第 L3 页.asp显示�

显然,两个页面都在同一台服务器上(Windows Server 2012 R2(,但是似乎第 L3 页.asp无法识别扩展 ASCII 表。

我尝试在顶部添加<% Response.Charset="ISO-8859-1"%>..和许多其他解决方案,但没有任何变化..

虽然脚本非常简单(但使用 rc4 例程测试了更长的脚本(,如果我在 L3 中复制 L2.asp 的内容.asp反之亦然,页面的行为保持不变,因此,L2.asp连续显示'而 L3 显示�,更改页面名称不会改变行为。

知道是什么会造成这种奇怪的行为吗?

非常感谢任何提示

这与Chr功能无关。
� 是 UTF8-BOM,对于 UTF-8 文件是可选的。
首先尝试在没有 BOM 的情况下以 UTF-8 格式保存 ASP 文件。您可以使用高级编辑器,如 Notepad++.
按照以下步骤操作:Open "file.asp" > Encoding > Convert to UTF-8,然后File > Save
Response.Charset只是将字符集的名称附加到内容类型响应标头,而不在服务器端执行任何操作。
相反,您必须指定Response.CodePage = 1252

最新更新