经典 asp chr() 函数问题

classic asp chr() function issue

我试图在 ASP 中实现 RC4 加密,但我发现 chr() 函数有一个奇怪的行为。

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

更不用说我已经完成的所有测试,我可以用非常简单的形式重现这个问题:

我简单写了

<%=chr(146)%>

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

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

第 L3.asp 页显示 �

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

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

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

知道是什么导致了这种奇怪的行为吗?

非常感谢任何提示

这与 Chr 功能无关。
�UTF8-BOM,对于 UTF-8 文件是可选的。
首先尝试将 ASP 文件保存为不带 BOM 的 UTF-8 格式。您可以使用像 Notepad++ 这样的高级编辑器。
按照以下步骤操作:Open "file.asp" > Encoding > Convert to UTF-8 然后 File > Save

Response.Charset 只是将字符集的名称附加到 Content-Type 响应 header 上,对 server-side 什么也不做。
相反,您必须指定 Response.CodePage = 1252.