将站点转换为 asp.net 核心后,Razor cshtml 中的单引号字符未被识别为有效字符
Single quotation character in Razor cshtml not recognized as a valid character after converting site to asp.net core
我已经将之前的 asp.net MVC .net 框架网站转换为 .net core 6,但遇到了一个奇怪的问题。
我在 cshtml 的文本中嵌入的单引号,即 `` 在我的运行时输出中显示为带有 unicode 替换字符引号的字符,即 � 在我的运行时输出中
在运行时我的 cshtml 中有 unicode 替换字符,在编辑器中它显示重音字符是正确的。
Example
然而,确切的 cshtml 文件在旧 asp.net 4
中显示正确
这不是 Windows 设置问题,因为旧网站在同一台机器上显示正确
我试过的。
我测试了 various meta headers 到页眉
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
和
<meta http-equiv="Content-Type" content="text/html; charset=UTF-32" />
在我的 Program.cs 中,我尝试添加
builder.Services.Configure<WebEncoderOptions>(options =>
{
options.TextEncoderSettings = new
TextEncoderSettings(UnicodeRanges.All);
});
然后尝试
builder.Services.AddSingleton<HtmlEncoder>(
HtmlEncoder.Create(allowedRanges: new[] { UnicodeRanges.All
}));
也试过
<system.web>
<globalization requestEncoding="utf-8" responseEncoding="utf-8" fileEncoding="utf-8"/>
</system.web>
在我的 web.config
但运行时输出仍然与问号字符相同
我发现了问题。在 windows 资源管理器中打开 cshtml 文件位置,然后在记事本中打开该文件。然后另存为,我看到默认编码是ANSI。然后我将文件保存为 UTF-8。
screenshot
让我吃惊的是它在 Visual studio 和记事本中正确显示,但只是在运行时不正确,所以我认为文件编码是 asp.net
中的内容
我已经将之前的 asp.net MVC .net 框架网站转换为 .net core 6,但遇到了一个奇怪的问题。
我在 cshtml 的文本中嵌入的单引号,即 `` 在我的运行时输出中显示为带有 unicode 替换字符引号的字符,即 � 在我的运行时输出中
在运行时我的 cshtml 中有 unicode 替换字符,在编辑器中它显示重音字符是正确的。
Example
然而,确切的 cshtml 文件在旧 asp.net 4
中显示正确这不是 Windows 设置问题,因为旧网站在同一台机器上显示正确 我试过的。
我测试了 various meta headers 到页眉
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
和
<meta http-equiv="Content-Type" content="text/html; charset=UTF-32" />
在我的 Program.cs 中,我尝试添加
builder.Services.Configure<WebEncoderOptions>(options =>
{
options.TextEncoderSettings = new
TextEncoderSettings(UnicodeRanges.All);
});
然后尝试
builder.Services.AddSingleton<HtmlEncoder>(
HtmlEncoder.Create(allowedRanges: new[] { UnicodeRanges.All
}));
也试过
<system.web>
<globalization requestEncoding="utf-8" responseEncoding="utf-8" fileEncoding="utf-8"/>
</system.web>
在我的 web.config
但运行时输出仍然与问号字符相同
我发现了问题。在 windows 资源管理器中打开 cshtml 文件位置,然后在记事本中打开该文件。然后另存为,我看到默认编码是ANSI。然后我将文件保存为 UTF-8。
screenshot
让我吃惊的是它在 Visual studio 和记事本中正确显示,但只是在运行时不正确,所以我认为文件编码是 asp.net
中的内容