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



У меня есть строка, которую мне нужно преобразовать в эквивалентный массив байтов в .NET.



Это должно быть легко, но у меня свело мозг.

651   4  

4 ответов:

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

var result = System.Text.Encoding.Unicode.GetBytes(text);

сначала выясните, какую кодировку вы хотите: вам нужно знать немного о Unicode первый.

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

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

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

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

здесь XXX можно:

ASCII
BigEndianUnicode
Default
Unicode
UTF32
UTF7
UTF8

такой:

    string test = "text";
    byte[] arr = Encoding.UTF8.GetBytes(test);

Comments

    Ничего не найдено.