html输出中的特殊字符
我希望直接打印像’ø’这样的字符,但在源’ø’中显示为ø
如果输出通过Html.Encode()
,它将不会呈现正确的字符,但是ø
在我的配置中
资源:
这输出:
Støvletter
但输出应该如下:
Støvletter
您可以尝试使用<%=
而不是html编码<%:
创建输出<%:
(在我对你的评论做出积极评论后发表这篇文章)
这可能不是您正在寻找的答案,但它仍然很有趣。
如果你看一下HttpEncoder
源代码,就可以使用自定义的 HtmlEncoders
来代替默认的WebUtility.HtmlEncode。
我玩过,发现Microsoft的HtmlEncoder叫做AntiXSS正确编码了这些字符。
我用Nuget安装它:
PM> Install-Package AntiXSS
然后更新我的web.config
:
....
正常输出和Html.ActionLinks似乎都有效。
AFAIK这是不可能的,除非你滚动自己的自定义HTML编码例程(我绝对建议你反对)。
生成的HTML是正确的,并且该字符在客户端浏览器上正确显示。 HTML旨在由程序(Web浏览器)读取,以便将其呈现为人类可读forms,而不是人类。
Støvletter
是一个完全有效的HTML,将在客户端浏览器上显示如下: