2015-10-06 45 views
3

在C#中,Encoding.UTF32是UTF-32的小端,Encoding.BigEndianUnicode是UTF-16的大端,Encoding.Unicode是UTF-16的小端。但我找不到任何用于UTF-32的big-endian。在C#中没有UTF-32 big-endian?

我正在开发一个简单的文本查看器,并不认为有很多以UTF-32 big-endian编码的文档,但我也想为此做好准备,以防万一。

不是C#支持UTF32 big-endian吗?

BTW Java支持它。

+1

https://msdn.microsoft.com/en-us/library/system.text.utf32encoding%28v=vs.110%29.aspx似乎表明字节顺序是构造函数的参数 - 是有什么比你想象的东西? –

+1

Encoding.GetEncoding(“utf-32be”)是一种简单的方法。 –

+0

感谢您提供的丰富回复! – Jenix

回答

8

它确实支持UTF-32上的big endian。只是用overloaded constructor自己创建的编码:

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

预先定义的编码为staticEncoding不是一个详尽的清单。您可以创建更多更多的其他编码。

+0

我发现了一些资源,说可以做但不明确如何做 - 很好的工作! – bUKaneer

+0

哇!你救了我!非常感谢!! – Jenix