【问题标题】:razor view » character rendered as »razor view » 字符呈现为 »
【发布时间】:2012-07-17 05:36:45
【问题描述】:

» 字符似乎在剃刀视图中呈现为 »。我试过了

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

@Html.Raw()

但问题并没有消失。 ASPX 视图没有这个问题。

另外,文化设置为

<globalization uiCulture="en" culture="en-US" />

【问题讨论】:

  • 检查您的浏览器是否认为它是用 UTF-8 编码的,以及 .cshtml 文件是否以 UTF-8 格式保存并带有签名(文件/高级保存选项...)。
  • 是的 firefox pageinfo 说 utf-8 编码。但是使用带有签名的 UTF-8 保存解决了这个问题。最初保存为没有签名的 UTF-8。谢谢。顺便说一句,你如何检查浏览器是否认为它是 UTF-8?
  • 在 Firefox 中,它是页面信息。在 IE 中,页面上的上下文菜单有一个 Encoding 子菜单。

标签: .net asp.net-mvc-3 razor


【解决方案1】:

我怀疑包含此字符的 .cshtml 视图/部分未使用带有签名编码的 UTF-8 保存。也对_Layout 进行相同的验证。在 VS 中使用 Save As with encoding dialog:

还要确保您已将» 字符原样放在您的视图中。不是来自字符串、XML 或数据库。如果它来自其他地方,请确保在您阅读它时它没有损坏。如果是这种情况,请显示检索您试图在视图中输出的字符串的代码。

关于您的元标记的最后说明:如果您使用的是 HTML5,请使用:

<meta charset="utf-8" />

【讨论】:

  • 你知道为什么 ASPX 视图不存在这个问题吗?
  • Razor 也不存在这个问题。一定有人弄乱了您文件的编码。外部文本编辑器或其他东西,只需更改编码。
  • 是的,你是对的。刚刚检查了文件的旧版本,然后我使用工具将其转换为 MVC3,它是 UTF-8 和 BOM。
  • 在 Visual Studio 中,您需要使用编码 UTF-8 with signature 进行保存,如上所示,但在其他文本编辑器中,它通常显示为 UTF-8 with BOMUTF-8 (with Byte Order Mark)。这解决了我在 Sublime Text 中的问题。
  • 不错的一个。 Razor 一直在修改货币符号,直到我注意到 BOM 丢失(Gulp 在复制文件(src/dest)时将其删除。
猜你喜欢
  • 2015-02-01
  • 2019-04-28
  • 2015-08-02
  • 1970-01-01
  • 2015-04-14
  • 2020-11-27
  • 1970-01-01
  • 1970-01-01
  • 2012-03-03
相关资源
最近更新 更多