如何让Razor读取没有BOM的UTF-8文件?

use*_*544 9 c# asp.net-mvc razor asp.net-mvc-4

我们将前端和后端工作分开.前端使用大量编辑器进行编辑CSHTML,其中大部分都UTF-8没有字节顺序标记.问题是,Razor预计BOM会出现这种情况.如果它不存在,它将使用当前代码页读取文件,我们得到编码问题.

如何让Razor接受UTF-8没有的文件BOM?显然唯一的解决方案是实现自己的VirtualPathProvider,因此也是VirtualFile.不幸的是,目前使用的VirtualPathProvider是MapPathBasedVirtualPathProvider内部类.所以我必须重新创建很多功能.

小智 6

以下如何强制ASP.NET MVC将.cshtml文件读取为UTF-8?,尝试添加此Web.config:

<system.web>
    <globalization fileEncoding="utf-8" />
</system.web>
Run Code Online (Sandbox Code Playgroud)