7

In C#, Encoding.UTF32 is UTF-32 little-endian, Encoding.BigEndianUnicode is UTF-16 big-endian, Encoding.Unicode is UTF-16 little-endian. But I can't find any for UTF-32 big-endian.

I'm developing a simple textviewer and don't think there are many documents encoded in UTF-32 big-endian but I want to prepare for that too, just in case.

Doesn't C# support UTF32 big-endian?

BTW Java supports it.

4

2 回答 2

13

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

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

static预定义为on的编码Encoding并不是一个详尽的列表。您可以创建更多更多的其他编码。

于 2015-10-06T15:29:22.417 回答
0
//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) );
于 2018-09-20T20:46:59.343 回答