0

現在、一連のASPクラシックページを新しいMVCベースのイントラネットに転送しています。重要な機能の変更は行っていませんが、UIの改善とベストプラクティスをいくつか行っています。ただし、これは特殊文字に関する問題を引き起こします。

1つのセクションは、臨床テストのドロップダウンリストで機能し、テスト名のクエリ文字列を介してGETSします。ただし、ASP.netのHTMLEncodingは過度に攻撃的です(UTF-8であるにもかかわらず、広範囲の文字をエンコードしています)。これにより、HTMLエンコードされた文字がURLエンコードされ、全体が「潜在的に危険な要求」エラーをスローします。

テスト名をHTMLEncodeできませんでした。これを変更するためのアクセス権を持つユーザーは非常に限られていますが、それは私が始めたいパスではありません。

これにより、文字列のエンコードを解除してから再エンコードする必要がありますが、JavaScriptにはネイティブのHTMLDecode関数がありません。文字の長いリストを取得して文字列を置換するのではなく、HTMLエンコードされた文字からパーセントエンコードされた文字に直接移行する簡単な方法があるかどうか、つまり&xxx;の行に沿って何かをデコードして再エンコードするのではないかと思いました。=%(xxx / 2)

4

1 に答える 1

0

HTMLエンコードされた文字(エンティティ名ではなく文字コードを使用)を取得してJavaScript文字を作成する関数を思いついたのですが、ここからURLエンコードに移行するか、それを使って何か他のことをするのは簡単です。

result = subject.replace(/&#(\d*);/img, function(match, matchinggroup) {
    return String.fromCharCode(matchinggroup); 
});
于 2011-06-09T10:32:07.803 に答える