【发布时间】:2021-06-21 12:44:45
【问题描述】:
我有以下接受 HTML 字符串的函数,例如"<p>áêö</p>":
public string EncodeString(string input)
{
// ...
return System.Net.WebUtility.HtmlEncode(input);
}
我想修改该函数以输出相同的字符串,但将重音字符作为 HTML 实体。使用 System.Net.WebUtility.HtmlEncode() 对整个字符串进行编码,包括 HTML 标记。如果可能,我想保留 HTML 标记,因为字符串在应用程序的其他地方被解析和呈现。这是用正则表达式更好地解决的问题吗?
【问题讨论】:
-
为什么要对 unicode 字符进行编码?只需使用
utf-8作为您的网络编码(无处不在),然后浏览器就会愉快地显示 unicode 字符串。 -
System.Net.WebUtility.HtmlEncode(input).Replace( '&lt;','<').Replace( '&gt;','>'); -
@PoulBak 尽管这是理想的解决方案,但我目前无法控制输入字符串的来源(它们已经作为 HTML 字符串传递)以及哪些应用程序呈现它们(我可以说最好它是不是现代浏览器吗)
标签: c# .net encoding html-entities