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

时间:2016-04-21 21:16:29

标签: c# asp.net-mvc razor unicode web-config

我想在名称中添加一些很酷的字符,并在我的 web.config 中添加一张奶牛的照片,就像这样。

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

但是,当我启动应用程序时,我在 _Layout.cshtml 中对此行提出了一个例外,其中涉及到本地化等问题。

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

我不确定如何处理这件事。显然,MVC讨厌奶牛,但我该怎么办呢?

我已根据the suggested syntax尝试关注standard。我还添加了配置文件的UTF-16 at the top

2 个答案:

答案 0 :(得分:1)

尝试在头文件和配置节点中为system.web设置全球化节点&#34; fileEncoding&#34;属性为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>

P.S。对不起 - 我上次从平板电脑打字时很难写出一个例子。

答案 1 :(得分:1)

这与Unicode字符以及与XML转义有关的一切都没有任何关系。

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

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

除非您明确定义它们,否则所有其他实体(例如&#x1f3eb;)在XML中无效。

但是,有一种简单的方法可以解决这种情况。这个实体的问题是它包含一个未转义的&符号,这使得它与XML不兼容。你只需要逃避它,一切都与世界是对的。

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

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