在C#中没有UTF-32大端?

在C#中, Encoding.UTF32是UTF-32 little-endian, Encoding.BigEndianUnicode是UTF-16 big-endian, Encoding.Unicode是UTF-16 little-endian。 但我找不到UTF-32大端的任何东西。

我正在开发一个简单的textviewer,并且不认为有很多文档用UTF-32大端编码,但我也想为此做好准备,以防万一。

C#不支持UTF32大端吗?

BTW Java支持它。

它确实支持UTF-32上的大端。 只需使用重载的构造函数自己创建编码:

 Encoding e = new UTF32Encoding(true /*bigEndian*/, true /*byteOrderMark*/); 

在编码上预定义为staticEncoding不是详尽的列表。 您可以创建更多其他编码。

 //https://docs.microsoft.com/en-us/dotnet/api/system.text.encoding?view=netframework-4.7.2 //12000 utf-32 Unicode (UTF-32) ✓ ✓ //12001 utf-32BE Unicode (UTF-32 Big endian) const string strUniRepChr = " "; //Unicode Character 'REPLACEMENT CHARACTER' (U+FFFD) Encoding cpUTF32 = Encoding.GetEncoding(12000, new EncoderReplacementFallback(strUniRepChr), new DecoderReplacementFallback(strUniRepChr) );