如果有任何差异,那么:
System.Web.HttpUtility.HtmlEncode
System.Web.HttpServerUtility.HtmlEncode
System.Net.WebUtility.HtmlEncode
HttpUtility.HtmlEncode和HttpServerUtility.HtmlEncode都说:
要对Web应用程序之外的值进行编码或解码,请使用WebUtility类。
这意味着存在差异,但不会直接说出或说出差异是什么,如果有的话。
答案 0 :(得分:1)
如果你挖掘source code,你可以轻松地跟随它。
/// <devdoc>
/// <para>
/// HTML encodes a string and returns the encoded string.
/// </para>
/// </devdoc>
public static String HtmlEncode(String s) {
return HttpEncoder.Current.HtmlEncode(s);
}
/// <devdoc>
/// <para>
/// HTML
/// encodes a given string and
/// returns the encoded string.
/// </para>
/// </devdoc>
public string HtmlEncode(string s) {
return HttpUtility.HtmlEncode(s);
}
public static string HtmlEncode(string value) {
if (String.IsNullOrEmpty(value)) {
return value;
}
// Don't create string writer if we don't have nothing to encode
int index = IndexOfHtmlEncodingChars(value, 0);
if (index == -1) {
return value;
}
StringWriter writer = new StringWriter(CultureInfo.InvariantCulture);
HtmlEncode(value, writer);
return writer.ToString();
}
因此System.Web.HttpServerUtility.HtmlEncode
实际使用System.Web.HttpUtility.HtmlEncode
。如果您深入研究HttpEncoder.Current.HtmlEncode(s);
,则会出现以下代码:
protected internal virtual void HtmlDecode(string value, TextWriter output) {
WebUtility.HtmlDecode(value, output);
}
所以他们都是最终,使用System.Net.WebUtility.HtmlEncode
。我想System.Web
版本只适用于向后兼容性。因此建议使用System.Net
版本。