我们来看一个例子:有一个德语单词: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ßgängerübergänge</div> <div>Fußgängerübergänge</div> </body> ...
问题:我做错了什么,我该如何解决这个“编码”问题?想要源代码中最后两个词和前两个词一样出现怎么办?
最佳答案
如果你想防止你的文本被 HTML 编码,你可以简单地使用 Html.Raw:
@Html.Raw(Resources.MyResource.TestWord)
编码真的是个问题吗?
关于C# ASP.NET MVC 资源文件的字符串在 HTML 源中是一种奇怪的编码格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26562810/