【发布时间】:2010-10-19 11:11:53
【问题描述】:
我需要为 1251 代码页创建 System.Encoding。
在我使用的俄语 Windows 上
Encoding encoding = Encoding.Default
恐怕这会根据 Windows 产生不同的结果
【问题讨论】:
我需要为 1251 代码页创建 System.Encoding。
在我使用的俄语 Windows 上
Encoding encoding = Encoding.Default
恐怕这会根据 Windows 产生不同的结果
【问题讨论】:
对于 .NET Core,您还需要引用 System.Text.Encoding.CodePages 包,然后使用 Encoding.RegisterProvider:
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
【讨论】:
正确,使用Encoding.Default会在不同的机器上得到不同的结果。
如果你想要一个特定的代码页,你可以使用Encoding.GetEncoding:
Encoding encoding = Encoding.GetEncoding("windows-1251");
【讨论】:
.NET Framework/.NET Core 支持大量字符编码和代码页。若要检索 .NET Framework/.NET Core 中存在的编码,请将 EncodingProvider 对象传递给 Encoding.RegisterProvider 方法,以使 EncodingProvider 对象提供的编码可用于公共语言运行时。 Microsoft Document Reference
System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
【讨论】: