У меня есть строка, которую мне нужно преобразовать в эквивалентный массив байтов в .NET.Как преобразовать строку в массив байтов в .NET?
Это должно быть легко, но у меня возникает судорога мозга.
У меня есть строка, которую мне нужно преобразовать в эквивалентный массив байтов в .NET.Как преобразовать строку в массив байтов в .NET?
Это должно быть легко, но у меня возникает судорога мозга.
Вам нужно использовать кодировку, чтобы сообщить .NET, что вы ожидаете в качестве вывода. Например, в UTF-16:
var result = System.Text.Encoding.Unicode.GetBytes(text);
Как это:
string test = "text";
byte[] arr = Encoding.UTF8.GetBytes(test);
Что Encoding вы используете? Konrad получил это в значительном степени вниз, но есть и другие, там и вы могли бы получить кретиничные результаты с неправильным:
byte[] bytes = System.Text.Encoding.XXX.GetBytes(text)
Где XXX
может быть:
ASCII
BigEndianUnicode
Default
Unicode
UTF32
UTF7
UTF8
Первой работа из которой кодирующего вы хотите : сначала вы должны знать a bit about Unicode.
Следующая работа, которая System.Text.Encoding
соответствует. Мой Core .NET refcard описывает большинство распространенных, и как получить экземпляр (например, с помощью статического имущества Encoding
или путем вызова Encoding.GetEncoding
.
Наконец, работать, хотите ли вы все байты сразу (что является самым простым способ работы - позвоните Encoding.GetBytes(string) один раз, и все будет готово), или вам нужно разбить его на куски - в этом случае вы захотите использовать Encoding.GetEncoder, а затем закодировать бит за раз. Кодер заботится о сохранении состояния между вызовами, в случае, если вам нужно, например, разбить половину пути через символ.
В System.Text.Encoding гораздо больше кодировок, чем только Unicode: убедитесь, что вы понимаете, какой из них вам нужен. – 2008-10-27 21:24:01
Joel: следовательно Я написал «например». ;-) Но ваш комментарий, конечно, действителен. – 2008-10-27 21:27:03