我需要创建1251代码页的System.Encoding。
在我的俄语Windows上,我使用以下代码:
Encoding encoding = Encoding.Default
我担心这会因为不同的Windows版本而产生不同的结果
如果你使用Encoding.Default
,在不同的机器上会得到不同的结果。
如果你想要特定的代码页,可以使用Encoding.GetEncoding。
Encoding encoding = Encoding.GetEncoding("windows-1251");
对于.NET Core,您还需要引用System.Text.Encoding.CodePages包,然后使用Encoding.RegisterProvider:
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
GetEncoding()
重载,接受一个int
(代码页)参数:Encoding encodingByCodePage = Encoding.GetEncoding(1251);
Encoding.RegisterProvider()
方法来使字符编码在平台上可用。如果您不调用它,可能会出现System.NotSupportedException
的错误提示:
'没有可用于编码1251的数据。有关定义自定义编码的信息,请参阅Encoding.RegisterProvider方法的文档。'