String -> Byte[]. Кратко и без unsafe. Как?
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 25.01.12 05:42
Оценка: :)
Привет.

Пишу тестовый код, в котором нужно получить бинарное представление (System.Byte[]) юникодной строки (System.String).

Через unsafe делать западло

Как такое делается через safe-код?

Пока родил такое
 var mem_stream=new MemoryStream();
 var bin_writer=new BinaryWriter(mem_stream,System.Text.Encoding.Unicode);

 const string c_value=" 1-2. raz-dva";

 bin_writer.Write(c_value.ToCharArray());
 bin_writer.Flush();

 //----- формируем массив байт
 var c_input_value=new byte[mem_stream.Length];

 Array.Copy(mem_stream.GetBuffer(),c_input_value,c_input_value.Length);

Есть более краткие варианты без использования MemoryStream и BinaryWriter?
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re: String -> Byte[]. Кратко и без unsafe. Как?
От: Jack128  
Дата: 25.01.12 05:45
Оценка: 6 (1) +1
Здравствуйте, Коваленко Дмитрий, Вы писали:

КД>Привет.


КД>Пишу тестовый код, в котором нужно получить бинарное представление (System.Byte[]) юникодной строки (System.String).

изучи методы класса Encoding
Re[2]: String -> Byte[]. Кратко и без unsafe. Как?
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 25.01.12 06:17
Оценка:
Здравствуйте, Jack128, Вы писали:

КД>>Пишу тестовый код, в котором нужно получить бинарное представление (System.Byte[]) юникодной строки (System.String).

J>изучи методы класса Encoding

"Оooo! Ja Ja!!!"

const string c_value=" 1-2. raz-dva";
var c_input_value=(new System.Text.UnicodeEncoding(false,false)).GetBytes(c_value);
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[3]: String -> Byte[]. Кратко и без unsafe. Как?
От: Аноним  
Дата: 26.01.12 15:23
Оценка: 6 (1)
Здравствуйте, Коваленко Дмитрий,

const string c_value=" 1-2. raz-dva";
var c_input_value= Encoding.Unicode.GetBytes(c_value);
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.