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,将在客户端浏览器上显示如下:

    在此处输入图像描述