.NET Core 2.0 Razor账户页中文显示异常求助
ASP.NET Core 2.0 登录页面中文乱码问题排查与解决
嘿,我之前在ASP.NET Core 2.0项目里也碰到过类似的中文乱码问题,结合你描述的情况——根目录页面中文标题显示正常,但/Page/Account/Manage/Login.cshtml里登录、注册相关的中文出现乱码,大概率是这几个原因导致的,给你分享下排查和解决的思路:
可能的原因
- 视图文件编码不匹配:Login.cshtml文件本身的编码不是ASP.NET Core推荐的UTF-8(无BOM),比如保存成了GB2312或其他编码,导致渲染时解码错误。
- 本地化资源文件异常:登录、注册这类文本可能是从本地化资源(
.resx文件)读取的,资源文件的编码错误或者本地化服务配置缺失,会导致文本无法正确解析。 - 页面编码元标签缺失/错误:虽然根目录页面正常,但Login.cshtml可能没有继承布局页的正确charset设置,或者自身head部分未指定UTF-8编码。
对应的解决方法
1. 修正视图文件编码
- 用Visual Studio打开
Login.cshtml,点击顶部菜单「文件」→「高级保存选项」,在「编码」下拉框中选择UTF-8 无签名(即UTF-8 without BOM),然后保存文件。 - 如果找不到「高级保存选项」,可以先去「工具」→「选项」→「文本编辑器」→「所有语言」→「文件编码」,把默认编码设置为UTF-8无BOM,避免后续新建文件再出现类似问题。
2. 排查本地化资源配置
如果你的登录、注册文本是通过本地化工具调用的(比如@Localizer["Login"]),按以下步骤检查:
- 右键对应的资源文件(比如
Account.resx)→「属性」,确认「编码」设置为UTF-8。 - 确保
Startup.cs中正确配置了本地化服务:
public void ConfigureServices(IServiceCollection services) { // 设置资源文件存放路径 services.AddLocalization(options => options.ResourcesPath = "Resources"); services.AddMvc() .AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix) .AddDataAnnotationsLocalization(); } public void Configure(IApplicationBuilder app, IHostingEnvironment env) { var supportedCultures = new[] { new CultureInfo("zh-CN"), // 可添加其他需要支持的文化 }; app.UseRequestLocalization(new RequestLocalizationOptions { DefaultRequestCulture = new RequestCulture("zh-CN"), SupportedCultures = supportedCultures, SupportedUICultures = supportedCultures }); // 其他中间件配置(比如app.UseMvc()等) }
3. 确认页面编码元标签
- 检查Login.cshtml使用的布局页(比如
_Layout.cshtml)的head部分,是否包含正确的编码声明:
<meta charset="utf-8" />
- 如果Login.cshtml没有使用布局页,而是直接编写了head内容,记得自己添加上述meta标签。
额外小技巧
如果以上方法都试过还是乱码,可以尝试清理项目的bin和obj文件夹,然后重新编译运行——有时候缓存的旧文件也会导致这种奇怪的乱码问题。
内容的提问来源于stack exchange,提问作者Chunde Huang
相关产品推荐
相关产品推荐

