4

我把<meta http-equiv="content-type" content="text/html; charset=utf-8" />头部和 DOCTYPE 放在我的顶部_Layout.cshtml,但是当我查看网站时,特殊的土耳其字符显示为 '1; 等在中,而不是在页面中。网页正确显示它们,源文件有问题..你知道我应该做些什么来纠正这个问题吗?

4

2 回答 2

8

尝试将源文件保存为带有BOM 的 UTF-8。
我遇到了类似的问题,似乎 Razor 期望文件具有 BOM 签名。

在 Visual Studio 中:文件 > 高级保存选项:

高级保存选项对话框

于 2013-05-09T02:57:29.083 回答
3

我遇到了完全相同的问题,尝试了所有解决方案,但都没有奏效,使用 Notepad++ 检查 .cshtml 文件编码是否正确(带有 BOM 的 utf8),带有编码的 SaveAs 文件(如上所示),但问题仍然存在。

最后我发现我的剃须刀文件没有问题,似乎 ASP.Net core MVC 没有将 UTF-8 编码设置为默认编码,如果开发人员需要,必须设置它。

ConfigureServices我在方法的末尾添加了以下代码Program.cs(它将UTF-8编码添加到默认编码)并且问题解决了。

services.AddWebEncoders(o => {
            o.TextEncoderSettings = new System.Text.Encodings.Web.TextEncoderSettings(UnicodeRanges.All);
        });
于 2019-08-10T22:27:04.837 回答