我有一个像这样的字符列表:
白名单:“ABCDEFGHIJKLMNOPQRSTUVQXYZ&,;”()@ $% - _ +。“
我想编写一个函数,对除了这些字符之外的字符串中的所有字符进行编码。
答案 0 :(得分:1)
如果您确实想要更改HttpUtility.HtmlEncode
的功能,则需要创建自己的HttpEncoder
。
HttpEncoder Class - 备注部分介绍如何设置您的网站,以便HttpEncoder
,HttpUtility
默认使用HttpServerUtility
, HttpResponseHeader
。
修改强>
为了回应“我可以修改HttpUtility中的白名单字符吗?”
没有。内部默认HttpEncoder
调用WebUtility.HtmlEncode
的实现,后者又调用WebUtility.IndexOfHtmlEncodingChars
。此方法使用一组硬编码值,因此您无法修改白名单字符。您需要编写自己的HttpEncoder
类。
答案 1 :(得分: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
然而,我没有IDEA你将如何进行Html解码...我不会理会为什么你需要这种功能。