Как Вы преобразовываете строку в массив байтов в.NET?

71
задан Peter Mortensen 3 June 2015 в 18:15
поделиться

4 ответа

необходимо использовать кодирование (System.Text.Encoding) для сообщения.NET, что Вы ожидаете как вывод. Например, в UTF-16 (= System.Text.Encoding.Unicode) :

var result = System.Text.Encoding.Unicode.GetBytes(text);
97
ответ дан Konrad Rudolph 24 November 2019 в 12:57
поделиться

Сначала удайтесь, какое кодирование Вы хотите: необходимо знать немного о Unicode сначала.

Следующий удаются, который System.Text.Encoding , который соответствует. Мой Базовая.NET refcard описывает большинство общих, и как получить экземпляр (например, статическим свойством Encoding или путем вызова Encoding.GetEncoding .

Наконец, удайтесь, хотите ли Вы все байты сразу (который является самым легким способом работать - вызов Кодирование. GetBytes (строка) однажды и Вы сделаны), или необходимо ли повредить его в блоки - в этом случае Вы захотите использовать Кодирование. GetEncoder и затем кодирует понемногу. Кодер заботится о хранении состояния между вызовами, в случае, если необходимо прервать половину пути через символ, например.

41
ответ дан Jon Skeet 24 November 2019 в 12:57
поделиться

Какое Кодирование Вы используете? У Konrad есть он в значительной степени вниз, но существуют другие там, и Вы могли получить глупые результаты с неправильным:

byte[] bytes = System.Text.Encoding.XXX.GetBytes(text)

, Где XXX может быть:

ASCII
BigEndianUnicode
Default
Unicode
UTF32
UTF7
UTF8
18
ответ дан swilliams 24 November 2019 в 12:57
поделиться

Как это:

    string test = "text";
    byte[] arr = Encoding.UTF8.GetBytes(test);
8
ответ дан Igal Tabachnik 24 November 2019 в 12:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: