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