如何查找 1251 代码页的编码

发布于 2024-09-28 06:31:24 字数 160 浏览 2 评论 0原文

我需要为 1251 代码页创建 System.Encoding。

在我使用的俄语 Windows 上,

Encoding encoding = Encoding.Default

恐怕这会根据 Windows 产生不同的结果

I need to create System.Encoding for 1251 codepage.

On my russian Windows I use

Encoding encoding = Encoding.Default

I am afraid this will produce different results depending on Windows

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

辞慾 2024-10-05 06:31:24

正确,如果使用 Encoding.Default,您将在不同的机器上得到不同的结果。

如果您想要特定的代码页,可以使用 Encoding.GetEncoding

Encoding encoding = Encoding.GetEncoding("windows-1251");

Correct, you will get different results on different machines if you use Encoding.Default.

If you want a specific codepage, you can use Encoding.GetEncoding:

Encoding encoding = Encoding.GetEncoding("windows-1251");
森末i 2024-10-05 06:31:24

对于.NET Core,您还需要引用System.Text.Encoding.CodePages包,然后使用Encoding.RegisterProvider:

Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

For .NET Core you also need to reference the System.Text.Encoding.CodePages package and then use Encoding.RegisterProvider:

Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
凝望流年 2024-10-05 06:31:24

.NET Framework/.NET Core 支持大量字符编码和代码页。若要检索 .NET Framework/.NET Core 中存在的编码,请将 EncodingProvider 对象传递给 Encoding.RegisterProvider 方法,以使 EncodingProvider 对象提供的编码可供公共语言运行时使用。 Microsoft 文档参考

System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);

The .NET Framework/.NET Core supports a large number of character encodings and code pages. To retrieve an encoding that is present in the .NET Framework/.NET Core pass the EncodingProvider object to the Encoding.RegisterProvider method to make the encodings supplied by the EncodingProvider object available to the common language runtime. Microsoft Document Reference

System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
〃温暖了心ぐ 2024-10-05 06:31:24

为了完整起见,有一个 采用 int (代码页)参数的 GetEncoding() 重载:

Encoding encodingByCodePage = Encoding.GetEncoding(1251);

同样对于 .NET Core 和 .NET 5+,您需要调用 Encoding.RegisterProvider() 方法使字符编码在平台上可用。如果你不调用它,你可能会得到一个 System.NotSupportedException :

'没有数据可用于编码 1251。有关定义
自定义编码,请参阅文档
Encoding.RegisterProvider 方法。'

For completeness, there is a GetEncoding() overload taking an int (codepage) parameter:

Encoding encodingByCodePage = Encoding.GetEncoding(1251);

Also for .NET Core and .NET 5+ you need to call the Encoding.RegisterProvider() method to make character encodings available on a platform. If you don't call it, you will probably get a System.NotSupportedException saying

'No data is available for encoding 1251. For information on defining a
custom encoding, see the documentation for the
Encoding.RegisterProvider method.'

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文