首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Encoding.GetEncodings()不能正常工作

Encoding.GetEncodings()不能正常工作
EN

Stack Overflow用户
提问于 2022-06-07 13:42:54
回答 1查看 231关注 0票数 0

以下代码块在C#交互式编译器上运行良好

代码语言:javascript
复制
Microsoft (R) Visual C# Interactive Compiler version 4.2.0-4.22252.24 ()
Loading context from 'CSharpInteractive.rsp'.
Type "#help" for more information.
> using System.Text;
> var codepages = Encoding.GetEncodings().Select(x => x.GetEncoding()).ToList();
> foreach (var cp in codepages) { Console.WriteLine($"{cp.HeaderName} {cp.EncodingName} ({cp.CodePage})"); }

输出

代码语言:javascript
复制
1. IBM037 IBM EBCDIC (US-Canada) (37)
2. IBM437 OEM United States (437)
3. IBM500 IBM EBCDIC (International) (500)
..
..
..
138. x-iscii-pa ISCII Punjabi (57011)
139. utf-7 Unicode (UTF-7) (65000)
140. utf-8 Unicode (UTF-8) (65001)

但是,每当我想在.net 6.0 winform应用程序中运行它时,

代码语言:javascript
复制
        public MainForm()
        {
            InitializeComponent();
            initView();
            cbEncodings.Items.Clear();
            var codepages = Encoding.GetEncodings().Select(x => x.GetEncoding()).ToList();
            foreach (var e in codepages)
            {
                cbEncodings.Items.Add($"{e.EncodingName} ({e.CodePage})");
            }
        }

它只列出了7个元素

这是什么原因?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-07 14:08:29

在代码之前添加Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); (即在var codepages = Encoding.GetEncodings().Select(x => x.GetEncoding()).ToList();之前),然后得到完整的列表。详情见https://learn.microsoft.com/en-us/dotnet/api/system.text.encoding.getencodings?view=net-6.0

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72532291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档