1

ユーザー入力とコード生成値を文字列形式で格納する隠しフィールドがあります。文字列にはハイパーリンクなどが含まれている可能性があるため、隠しフィールドに入れる前に HTmlEncode を使用し、隠しフィールドから取得するときに値をデコードするために使用しました。ユーザー入力にフランス語の文字が含まれていると、コードがクラッシュします。リンク、フランス語、その他のカルチャ文字を含む文字列をエンコードする方法。以下のエラーが表示されます

A potentially dangerous Request.Form value was detected from the client (ctl00$ctl00$ContentPlaceHolder1$ContentPlaceHolder1$EmailHiddenField="...434] - [Exécuter la macro...").
4

2 に答える 2

3

まあ..あなたがC#を使用しているなら、ここに私の試みがあります..

HTML ドキュメント全体を Base64 文字列にエンコードしてから、URLEncode を使用します。

byte[] bytesToEncode = Encoding.UTF8.GetBytes(myHTMLDocAsString);
string encodedText = Convert.ToBase64String(bytesToEncode);

その後URLEncode(encodedText)

これは、エラーなしで POST として HTTP 経由で正常に転送できます!

非表示フィールドに保存する必要がある場合は、POSTする代わりに、非表示フィールドに入力してください..

それが役に立てば幸い..

于 2013-04-12T05:03:44.603 に答える
2

グローバリゼーション タグを次のように使用します。

<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="nb-no" uiCulture="no"/>

さらにこの回答に従ってください。これらの文字列のエンコード/デコードがわかります。

クエリ文字列から特殊文字の代わりに U+fffd/65533 を取得する

于 2013-04-12T05:03:29.703 に答える