You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.Net Core Identity预生成页面俄语字母显示为问号的解决方法

解决ASP.NET Core Identity预生成页面俄语字母显示为问号的问题

我之前也碰到过类似的坑,Identity预生成页面的非ASCII字符乱码确实容易让人头疼,给你几个实用的排查和解决方向:

1. 检查Identity页面文件的编码格式

这是最常见的诱因——预生成的.cshtml文件可能没以UTF-8编码保存,导致俄语字符无法正确解析:

  • 打开显示异常的文件(比如你的_LoginPartial.cshtml),看Visual Studio右下角的编码标识(比如显示“UTF-8”或“Windows-1251”)。
  • 如果不是UTF-8 with BOM(带签名的UTF-8),点击编码选项,选择「Save with Encoding...」,然后选中「Unicode (UTF-8 with signature) - Codepage 65001」保存即可。

2. 配置全局编码与区域文化

确保ASP.NET Core应用全程使用UTF-8编码,并配置正确的俄语区域文化:
在Program.cs(.NET 5及以下版本为Startup.cs)中添加以下配置:

var builder = WebApplication.CreateBuilder(args);

// 配置Razor页面与JSON的编码规则
builder.Services.AddRazorPages()
    .AddJsonOptions(options =>
    {
        options.JsonSerializerOptions.Encoder = System.Text.Encodings.Web.JavaScriptEncoder.UnsafeRelaxedJsonEscaping;
    });

// 设置请求本地化,指定俄语区域
builder.Services.Configure<RequestLocalizationOptions>(options =>
{
    var supportedCultures = new[] { "ru-RU" };
    options.DefaultRequestCulture = new Microsoft.AspNetCore.Localization.RequestCulture("ru-RU");
    options.SupportedCultures = supportedCultures.Select(c => new System.Globalization.CultureInfo(c)).ToList();
    options.SupportedUICultures = options.SupportedCultures;
});

var app = builder.Build();

// 启用请求本地化中间件(需放在UseRouting之后,UseAuthorization之前)
app.UseRequestLocalization();

app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.MapRazorPages();

app.Run();

3. 确认母版页的Meta标签与引用

  • 确保你的_Layout.cshtml中包含正确的UTF-8编码Meta标签:
    <meta charset="utf-8" />
    
  • 检查Identity页面顶部是否引用了正确的母版页,比如:
    @{
        Layout = "_Layout";
    }
    
    避免Identity页面使用了默认的、未配置编码的母版页。

4. 强制项目文件编码统一

打开项目的.csproj文件,添加以下配置,强制所有.cshtml文件使用UTF-8编码:

<PropertyGroup>
  <DefaultItemExcludes>$(DefaultItemExcludes);**/*.cshtml</DefaultItemExcludes>
</PropertyGroup>
<ItemGroup>
  <Content Include="**/*.cshtml">
    <Encoding>UTF-8</Encoding>
  </Content>
</ItemGroup>

按这个顺序排查,一般先解决文件编码问题就能搞定。如果还是不行,再检查全局编码配置和母版页引用。

内容的提问来源于stack exchange,提问作者DVice

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:12:30