Html.Encode类未编码≥或≤字符

时间:2018-09-07 12:28:22

标签: c# asp.net-mvc

我有一个字符串,我需要将其转换为XML,并且在大多数情况下,它适用于<或>,但不适用于≥或≤字符。

输入字符串为:

  

Lorem ipsum dolor sit amet <65 Lorem ipsum dolor sit amet, ≥65 Lorem ipsum dolor sit amet

<span>@Html.Encode(indication.Sentence.CompiledTextTitleCase)</span>

输出字符串为:

  

Lorem ipsum dolor sit amete &lt;65 Lorem ipsum dolor sit amet ≥65 Lorem ipsum dolor sit amet

您知道为什么会发生这种情况吗?

1 个答案:

答案 0 :(得分:1)

尽管<>在html中有特殊含义(标记的开始/结束,例如<title>),但没什么特别的。这就是为什么您必须编码前者,而后者却按原样工作的原因。

话虽如此,Html.Encode只会对具有特殊含义的字符进行编码,因此在读取数据时可能会误解。在客户端,您会收到以下代码:

<span>Lorem ipsum dolor sit amete &lt;65 Lorem ipsum dolor sit amet ≥65 Lorem ipsum dolor sit amet</span>

其中&lt;65将被打印为<

如果您将未编码的<发送给客户,则会得到以下信息:

<span>Lorem ipsum dolor sit amete <65 Lorem ipsum dolor sit amet ≥65 Lorem ipsum dolor sit amet</span>

由于上述原因,它不是有效的html。

所以这里没有什么要固定的。

相关问题