0

/default.asp と /mobile/default.asp という 2 つの Web ページがあります。

両方のページに次の宣言があります。

meta http-equiv="Content-Type" content="text/html;charset=utf-8"

さらに、両方のページで、一部の文字列の暗号化および復号化機能へのアクセスを提供する同じインクルード ファイルを使用します。

私が経験している問題は、同じ文字セット エンコーディングと同じ暗号化関数を使用する 2 つのページが、同じ文字列が同じキーで暗号化されているときに 2 つの異なる文字列を与えることです。

何か案は?間違った出力には、クエスチョン マークの付いた黒いひし形が多数含まれています。HEX では、これらは FD FF として表示されます。

追加 - 暗号化されたデータは SQL データベースに保存され、これが 2 つの異なる暗号化結果を表示する方法です。

したがって、出力は同じ SQL データベースにありますが、2 つの異なる ASP ページからの同じ暗号化関数です (ただし、同じ文字セットを使用しています)。

4

2 に答える 2

1

次のようにサーバー側のコードページを UTF-8 に設定できます。

<%@ Language="VBSCRIPT" CODEPAGE="65001"%>

また

<% 
Response.CodePage = "utf-8"
%>

出力をコードページと同じに保つのが一般的です。出力はメタ タグで設定したものであり、次のように設定することもできます。

<% 
Response.Charset = "utf-8"
%>
于 2012-09-19T08:33:29.210 に答える
0

試行錯誤の約 8 時間後、問題を見つけることができました。

ASP ページ自体は UTF-8 エンコードとして作成および保存され、BOM なしの UTF-8 である必要がありました

于 2012-09-19T19:03:24.067 に答える