在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*/);
在编码上预定义为static
的Encoding
不是详尽的列表。 您可以创建更多其他编码。
//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) );