0

我试图在 ASP 中实现 RC4 加密,但我在 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 例程测试了更长的脚本),如果我将 L2.asp 的内容复制到 L3.asp 中,反之亦然,页面的行为保持不变,因此,L2.asp 继续显示'while L3 显示�,更改页面名称不会改变行为。

有什么想法会造成这种奇怪的行为吗?

非常感谢任何提示

4

1 回答 1

4

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

Response.Charset只需将字符集的名称附加到 Content-Type 响应标头,并且在服务器端不执行任何操作。
相反,您必须指定Response.CodePage = 1252.

于 2016-02-13T12:24:41.980 回答