C# ASP.NET MVC 资源文件的字符串在 HTML 源中是一种奇怪的编码格式

标签 c# asp.net asp.net-mvc character-encoding html-encode

我们来看一个例子:有一个德语单词:Fußgängerübergänge

我有什么:

  • web.config 文件:

    ...
    <system.web>
        <globalization
            fileEncoding="utf-8"
            requestEncoding="utf-8"
            responseEncoding="utf-8"
            culture="auto"
            uiCulture="auto"
        />
    ...
    
  • 包含这个词的资源文件:

    <?xml version="1.0" encoding="utf-8"?>
    <root>
        ...
        <data name="TestWord" xml:space="preserve">
            <value>Fußgängerübergänge</value>       
        </data>
        ...
    </root>
    
  • 一个 html 页面硬编码了同一个词并使用这个资源引用这个词并从数据库中检索这个词:

    ...
    <head>
        <meta charset="utf-8">
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        ...
    </head>
    <body>
        <div>Fußgängerübergänge</div>
        <div>@Model.SameWordFromDbTable.TestWord</div>
        <div>@Resources.MyResource.TestWord</div>
        <div>@MvcHtmlString.Create(Resources.MyResource.TestWord)</div>
    </body>
    ...
    
  • 当我在网页的源代码中检查它们时,它们以两种不同的方式出现:

    ...
    <head>
        <meta charset="utf-8">
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        ...
    </head>
    <body>
        <div>Fußgängerübergänge</div>
        <div>Fußgängerübergänge</div>
        <div>Fu&#223;g&#228;nger&#252;berg&#228;nge</div>
        <div>Fu&#223;g&#228;nger&#252;berg&#228;nge</div>
    </body>
    ...
    

问题:我做错了什么,我该如何解决这个“编码”问题?想要源代码中最后两个词和前两个词一样出现怎么办?

最佳答案

如果你想防止你的文本被 HTML 编码,你可以简单地使用 Html.Raw:

@Html.Raw(Resources.MyResource.TestWord)

编码真的是个问题吗?

关于C# ASP.NET MVC 资源文件的字符串在 HTML 源中是一种奇怪的编码格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26562810/

相关文章:

asp.net - 有没有办法在 IE9 中使用有序列表和更新面板来解决这个问题?

c# - 如何使用变量在 C# 中将 MailAddress 定义为 Address?

c# - 如何解决 "Procedure or function has too many arguments specified"异常?

c# - 无法在 gridview 中访问 TextArea 中的文本

c# - 使用 signalR 和 C# 每秒向客户端发送消息

c# - session 超时刷新元标记重置.NET

javascript - 捆绑和缩小 - 当启用的脚本不起作用时

asp.net - 哪一种更适合自定义错误: HTML or View

c# - 为什么我不能在 lock 语句的主体中使用 'await' 运算符?

c# - 如何在温莎城堡中自动注册(按照惯例)通用装饰器