Нет UTF-32 с обратным порядком байтов в С#?

В C# Encoding.UTF32 — это UTF-32 с прямым порядком байтов, Encoding.BigEndianUnicode — это UTF-16 с прямым порядком байтов, Encoding.Unicode — это UTF-16 с прямым порядком байтов. Но я не могу найти код для UTF-32 с прямым порядком байтов.

Я разрабатываю простую программу просмотра текста и не думаю, что есть много документов, закодированных в кодировке UTF-32 с прямым порядком байтов, но на всякий случай я хочу подготовиться и к этому.

Разве C# не поддерживает UTF32 с обратным порядком байтов?

Кстати, Java поддерживает это.


person Jenix    schedule 06.10.2015    source источник
comment
msdn.microsoft.com/ en-us/library/, кажется, указывает, что порядок байтов является параметром конструктора - это что-то другое, чем вы имели в виду?   -  person Peter - Reinstate Monica    schedule 06.10.2015
comment
Encoding.GetEncoding(utf-32be) — это простой способ его получить.   -  person Hans Passant    schedule 06.10.2015
comment
Спасибо за информативные ответы вам обоим!   -  person Jenix    schedule 06.10.2015


Ответы (1)


Он поддерживает прямой порядок байтов в UTF-32. Просто создайте кодировку самостоятельно с помощью перегруженного конструктора:

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

Кодировки, предопределенные как static на Encoding, не являются исчерпывающим списком. Вы можете создать много-много других кодировок.

person Patrick Hofman    schedule 06.10.2015
comment
Я нашел несколько ресурсов, в которых говорилось, что это можно сделать, но не было ясно, как это сделать - отличная работа! - person Luke Baughan; 06.10.2015
comment
Ух ты! ты спас меня! Большое спасибо!! - person Jenix; 06.10.2015