带有HTML实体名称的HtmlEncode,有可能吗?

时间:2014-03-17 10:25:31

标签: c# html-entities html-encode

我使用以下方法HtmlEncode text Spanish string word = "configuración"; string encodedWord = System.Net.WebUtility.HtmlEncode(word); 中的configuración ,如下所示:

ó

输出是预期的:

method

但是! string文字表示拉丁文小写字母的 HTML实体编号" o"急性。

但是,我想知道是否有办法 - 使用我不知道的内置函数,库等 - 来显示 HTML实体编号的HTML实体名称并且还支持其他字符(如通用解决方案)。

我到目前为止所尝试的是检查HTML实体表(Google搜索时有很多,但我使用了这个:http://www.ascii.cl/htmlcodes.htm)然后创建了一个自定义ó来替换通过做一些映射,从单词中得到oacute;

因此,如果该字词包含configuración ,那么匹配的文字将被替换为 HTML实体名称,即{{1}},但它真的很痛苦有很多案例/情景。

最后,所需的输出将是:

{{1}}

1 个答案:

答案 0 :(得分:1)

的HTMLEncode(字);只编码ISO 8859-1 (Latin-1)。这意味着您的输入需要在ISO 8859-1中进行编码。 ó不符合iso标准,您可以尝试使用AntiXss编码器:

Microsoft.Security.Application.AntiXss.HtmlEncode("ó"); 

or Microsoft.Security.Application.Encoder.HtmlEncode("ó");