如何让.NET Core支持GB2312和GBK
在.NET Core中,默认是不支持GB2312和GBK编码的。
若果强制使用Encoding.GetEncoding(“GB2312”)的时候会抛出异常。
所以在.NET Core中如果我们要使用GB2312和GBK编码,需要给项目引入一个Nuget包:
包安装
可以使用以下方法来添加 System.Text.Encoding.CodePages:
Visual Studio环境下:
-
从“程序包管理器控制台”窗口:
-
转到“视图”>“其他窗口”>“程序包管理器控制台”
-
导航到包含
.csproj
文件的目录 -
请执行以下命令:
Install-Package System.Text.Encoding.CodePages
-
-
从“管理 NuGet 程序包”对话框中:
- 右键单击“解决方案资源管理器”>“管理 NuGet 包”中的项目
- 将“包源”设置为“nuget.org”
- 确保启用“包括预发行版”选项
- 在搜索框中输入“Swashbuckle.AspNetCore”
- 从“浏览”选项卡中选择最新的“Swashbuckle.AspNetCore”包,然后单击“安装”
Visual Studio Code环境下:
从“集成终端”中运行以下命令:
dotnet add TodoApi.csproj package Swashbuckle.AspNetCore
然后在程序启动入口添加以下代码
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
然后执行以下代码看效果:
using System.Text; // Register the CodePages encoding provider at application startup to enable using single and double byte encodings. Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); // Now can create single and double byte encodings for code pages that are not available in .NET Core. Encoding encoding = Encoding.GetEncoding("GB2312"); // Western European (Windows) byte[] encodedBytes = encoding.GetBytes("String to encode");
现在再调用Encoding.GetEncoding("gb2312")就不会抛出异常了。
本文来自博客园,作者:韩银剑,转载请注明原文链接:https://www.cnblogs.com/hyjrun/p/18025662
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!