2016-02-13 73 views
0

我试图在ASP中实现RC4 encription,但是我在chr()函数中发现了一个奇怪的行为。经典asp chr()函数问题

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

且不说所有的测试中,我已经做了,我可以riproduce的问题在一个非常简单的形式:

我只是在2页写道

<%=chr(146)%> 

,让说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连续显示'而L3显示�,并且更改页面名称不会改变行为。

确实有一些想法可以创造这种奇怪的行为?

非常感谢任何提示

回答

4

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

Response.Charset只是将字符集的名称追加到Content-Type响应标头,并在服务器端不做任何事情。
相反,您必须指定Response.CodePage = 1252

+0

Yesss!非常感谢!你救了我的一天 – Joe