如何允许我的 MVC 应用程序的 web.config 中的 unicode 字符

本文关键字:config 中的 unicode 字符 web 何允许 我的 MVC 应用程序 | 更新日期: 2024-10-31 00:36:50

我想在名字中添加一些很酷的字符,并在我的web.config中添加了一头牛的图片,就像这样。

<add key="SenderName" value="&#x1f3eb; Mr Mooo"/>

但是,当我启动应用程序时,我在 _Layout.cshtml 中的这一行上遇到了一个异常,唠叨着本地化等。

@Styles.Render("~/Content/css")

我不确定如何处理这个问题。显然,MVC 讨厌奶牛,但我能做些什么呢?

我试图根据标准遵循建议的语法。我还在配置文件的顶部添加了 UTF-16。

如何允许我的 MVC 应用程序的 web.config 中的 unicode 字符

这与 Unicode 字符完全无关,而与 XML 转义有关。

如您链接到的 XML 标准中所述,XML 仅定义了 5 个标准实体:

  • &lt;代表<
  • &gt;代表>
  • &amp;代表&
  • &apos;代表'
  • &quot;代表"

所有其他实体(如 &#x1f3eb; )在 XML 中无效,除非您显式定义它们。

不过,有一个简单的方法可以摆脱这种情况。此实体的问题在于它包含一个未转义的 & 符号,这使得它与 XML 不兼容。你只需要逃离它,世界一切都很好。

<add key="SenderName" value="&amp;#x1f3eb; Mr Mooo"/>

现在,应用程序将收到所需的未转义字符串:&#x1f3eb; Mr Mooo从配置文件中检索它时,然后可以将其传递给视图。

尝试在 system.web-set 全球化节点"fileEncoding"属性的标头和配置节点中设置 utf-16 的编码。

<?xml version="1.0" encoding="utf-16"?>
<configuration>
  <system.web>
    <globalization fileEncoding="utf-16" requestEncoding="utf-16" responseEncoding="utf-16"/>
  </system.web>
</configuration>

附言对不起 - 上次我从平板电脑打字时,很难写一个例子。