-1

我有一个这样的字符列表:

白名单:“ABCDEFGHIJKLMNOPQRSTUVQXYZ&,;”()@$%-_+。

我想编写一个函数来编码字符串中除这些字符之外的所有字符。

4

2 回答 2

1

如果您确实想要更改 的功能HttpUtility.HtmlEncode,则需要创建自己的HttpEncoder.

HttpEncoder 类-备注部分解释了如何设置您的网站以HttpEncoderHttpUtilityHttpServerUtilityHttpResponseHeader.

编辑

回应“我可以修改 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 回答