-1

私はこのようなキャラクターのリストを持っています:

ホワイトリスト: "ABCDEFGHIJKLMNOPQRSTUVQXYZ&,;"()@ $%​​-_+。 "

これらの文字を除く文字列からすべての文字をエンコードする関数を作成したいと思います。

4

2 に答える 2

1

の機能を実際に変更したい場合はHttpUtility.HtmlEncode、独自のを作成する必要がありますHttpEncoder

HttpEncoderクラス-備考セクションでは、、、、およびでHttpEncoderデフォルトでHttpUtilityを使用するようにWebサイトを設定する方法について説明します。HttpServerUtilityHttpResponseHeader

編集

「HttpUtilityのホワイトリスト文字を変更できますか?」への応答

いいえ。内部的には、デフォルトのHttpEncoder呼び出しの実装でWebUtility.HtmlEncodeあり、次に呼び出しますWebUtility.IndexOfHtmlEncodingChars。このメソッドはハードコードされた値のセットを使用するため、ホワイトリスト文字を変更することはできません。HttpEncoder独自のクラスを作成する必要があります。

于 2012-12-31T16:57:01.023 に答える
0

正直なところ、これは本当に悪い考えだと思いますが、挑戦のためだけに...

Public Function fnsHTMLEncodeExcept(pvsStringToEncode As String, pvsCharactersNotToEncode As String) As String
    Dim voEncodedString As New Text.StringBuilder

    For viPosition As Integer = 0 To (pvsStringToEncode.Length - 1)
        Dim vsChar As String = Mid(pvsStringToEncode, viPosition, 1)
        If InStr(pvsCharactersNotToEncode, vsChar) > 0 Then voEncodedString.Append(vsChar) Else voEncodedString.Append(HttpUtility.HtmlEncode(vsChar))
    Next
    Return voEncodedString.ToString
End Function

ただし、HtmlDecodeをどのように実行するかについてのアイデアはありません...この種の関数が必要な理由については、わざわざ質問しません。

于 2012-12-31T19:58:22.433 に答える