Razor 无法正确呈现特殊字符

Razor not rendering special characters properly

我正在为我们的 CMS 动态生成 cshtml 文件并使用 UTF-8 作为编码。我还尝试使用 Notepad++ 打开这些文件,它说编码是 UTF-8。

我只是使用控制器的 View() 方法来提供页面:

return View(path);

但它仍然不正确地将特殊字符渲染为错误的字符。就像 'α' 变成 'α',或者单引号变成 'â'。检查时生成的文件包含正确的字符,但在提供时显示不正确的字符。

我找到了问题和解决方案。 cshtml文件应该不是简单的UTF8格式,而是UTF8-BOM文件格式。通过 return View(path);.

提供服务时,非 BOM UTF8 cshtml 文件的特殊字符被转换为某些内容