C#中Encoding.GetEncoding无法找到windows-1252编码的问题
解决Windows-1252编码找不到的问题
你的问题出在.NET环境的编码默认配置上——从.NET Core开始,为了缩减应用体积,默认只包含ASCII、UTF-8、UTF-16等7种基础编码,像Windows-1252这类非通用编码不会被默认包含,所以直接调用Encoding.GetEncoding(1252)会报错。
解决步骤如下:
第一步:安装System.Text.Encoding.CodePages NuGet包
可以通过NuGet包管理器搜索安装,或者使用命令行:Install-Package System.Text.Encoding.CodePages如果用.NET CLI:
dotnet add package System.Text.Encoding.CodePages第二步:在使用编码前注册代码页提供器
在调用Encoding.GetEncoding之前,先执行代码注册额外编码:Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); // 之后即可正常获取Windows-1252编码 Encoding win1252 = Encoding.GetEncoding(1252); // 也可以通过名称获取 Encoding win1252 = Encoding.GetEncoding("windows-1252");
完成注册后再遍历Encoding.GetEncodings(),就能看到包括Windows-1252在内的更多编码了。
内容的提问来源于stack exchange,提问作者YouQQWhenIQ
相关产品推荐
相关产品推荐

