Search code examples
c#textencodingendiannessutf-32

No UTF-32 big-endian in C#?


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.


Solution

  • It does support big endian on UTF-32. Just create the encoding yourself using the overloaded constructor:

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

    The encodings predefined as static on Encoding aren't an exhaustive list. You can create much and much more other encodings.