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 は引き続き表示されます'。 L3 は を示し�、ページの名前を変更しても動作は変わりません。

何がそのような奇妙な行動を生み出すことができるのか考えていますか?

ヒントをありがとう

4

1 に答える 1

4

それはChr機能についてではありません。
�は、UTF-8 ファイルのオプションであるUTF8-BOMです。
まず、ASP ファイルを BOM なしの UTF-8 で保存してみてください。Notepad++ などの高度なエディターを使用できます。次の手順に
従います。 文字セットの名前を Content-Type 応答ヘッダーに追加するだけで、サーバー側では何もしません。 代わりに を指定する必要があります。Open "file.asp" > Encoding > Convert to UTF-8File > Save

Response.Charset
Response.CodePage = 1252

于 2016-02-13T12:24:41.980 に答える