.NET Core/5+ 使用中文编码
异常问题:
'GBK' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method. (Parameter 'name')
在 .NET Framework
中默认支持所有系统安装的编码,无需额外操作。而在 .NET Core/5+
出于性能和应用体积优化仅支持部分常用编码。这时候就需要手动添加拓展:
安装NuGet包
命令行
dotnet add package System.Text.Encoding.CodePages
Visual Studio 包管理器
右键项目 → 管理 NuGet 包
→ 搜索 System.Text.Encoding.CodePages
→ 安装。
注册编码提供程序
在程序启动时(如 Main
方法或 Startup
类中)注册:
using System.Text;
// 注册编码提供程序(只需一次)
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
使用
// 获取 GBK 编码实例
Encoding gbk = Encoding.GetEncoding("GBK");
评论