我试图在ASP中实现RC4 encription,但我在chr((函数上发现了一个奇怪的行为。
但问题与 RC4 脚本无关,而是与我无法解决的问题有关。
更不用说我做过的所有测试,我可以用一个非常简单的形式重现这个问题:
我只是写了
<%=chr(146)%>
在 2 页中,假设 L2.asp 和 L3.asp
第 L2 页.asp因此显示了 HTML '
’
第 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
。