C#ASP.NET MVC资源文件的字符串在HTML源代码中采用奇怪的编码格式

Bun*_*ndy 5 c# asp.net asp.net-mvc html-encode character-encoding

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

是)我有的:

  • web.config 文件:

    ...
    <system.web>
        <globalization
            fileEncoding="utf-8"
            requestEncoding="utf-8"
            responseEncoding="utf-8"
            culture="auto"
            uiCulture="auto"
        />
    ...
    
    Run Code Online (Sandbox Code Playgroud)
  • 包含此单词的资源文件:

    <?xml version="1.0" encoding="utf-8"?>
    <root>
        ...
        <data name="TestWord" xml:space="preserve">
            <value>Fußgängerübergänge</value>       
        </data>
        ...
    </root>
    
    Run Code Online (Sandbox Code Playgroud)
  • 一个html页面硬编码相同的单词并使用此资源来引用该单词并从DB中检索此单词:

    ...
    <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>
    ...
    
    Run Code Online (Sandbox Code Playgroud)
  • 当我在网页的源代码中检查它们时,它们以两种不同的方式出现:

    ...
    <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>
    ...
    
    Run Code Online (Sandbox Code Playgroud)

问题:我做错了什么,如何解决这个"编码"问题?如果希望源代码中的最后两个单词与前两个单词相同,我该怎么办?

Ala*_*lan 7

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

@Html.Raw(Resources.MyResource.TestWord)
Run Code Online (Sandbox Code Playgroud)

编码实际上是一个问题吗?