Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

byte[] в string

13K
04 июня 2006 года
SmartX
11 / / 04.05.2006
Дан массив byte[], содержащий коды символов в UTF. Подскажите как преобразовать его в строку.
273
04 июня 2006 года
3A3-968M
1.2K / / 22.12.2005
а какой Utf? есть Utf-32, Utf-7 и Utf-8
13K
04 июня 2006 года
SmartX
11 / / 04.05.2006
кодировка Utf32
273
04 июня 2006 года
3A3-968M
1.2K / / 22.12.2005
Не понял? Как это Utf-32. В этой кодировке каждый символ занимает 4 байта. В одном байте массива символ в Utf-32 хранится не может. Получается, что символ бьётся на 4 байта и в массив, так что ль?
13K
04 июня 2006 года
SmartX
11 / / 04.05.2006
в общем нужна прямая противоположность следующему коду:
 
Код:
string s = "*(&($UI@)&$O@";
 char[] cs = s.ToCharArray();
 byte[] bs = System.Text.Encoding.Default.GetBytes(cs);
13K
04 июня 2006 года
SmartX
11 / / 04.05.2006
Тут похоже unicode, но
 
Код:
string s2 = System.Text.Encoding.Unicode.GetString(bs);

возвращает совсем не то.
273
04 июня 2006 года
3A3-968M
1.2K / / 22.12.2005
[SIZE=2]Вот тебе:
 
Код:
[FONT=Courier New][SIZE=2][COLOR=#0000ff]string[/COLOR][/SIZE][SIZE=2] src = [/SIZE][SIZE=2][COLOR=#800000]"*(&($UI@)&$O@"[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New]; [COLOR=green]//исходная строка[/COLOR][/FONT]
[/SIZE][FONT=Courier New][SIZE=2][COLOR=#0000ff]byte[/COLOR][/SIZE][SIZE=2][] bs = System.Text.[/SIZE][SIZE=2][COLOR=#008080]Encoding[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New].Default.GetBytes(src.ToCharArray()); [COLOR=green]//кодируем в массив байтов[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=green]//Теперь восстанавливаем из массива bs строку обратно[/COLOR][/FONT]
[/SIZE][FONT=Courier New][SIZE=2][COLOR=#008080]Decoder[/COLOR][/SIZE][SIZE=2] d = [/SIZE][SIZE=2][COLOR=#008080]Encoding[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New].Default.GetDecoder(); [COLOR=green]//получаем декодер для текущей кодировки.[/COLOR][/FONT]
[/SIZE][FONT=Courier New][SIZE=2][COLOR=#0000ff]int[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New] count = d.GetCharCount(bs, 0, bs.Length); [COLOR=green]//узнаём количество символов в кодировке UTF-16, находящихся в массиве[/COLOR][/FONT]
[/SIZE][FONT=Courier New][SIZE=2][COLOR=#0000ff]char[/COLOR][/SIZE][SIZE=2][] cs=[/SIZE][SIZE=2][COLOR=#0000ff]new [/COLOR][/SIZE][SIZE=2][COLOR=#0000ff]char[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New][count]; [COLOR=green]//создаём буффер[/COLOR][/FONT]
[FONT=Courier New]d.GetChars(bs, 0, bs.Length, cs, 0); [COLOR=green]//выполняем декодировку[/COLOR][/FONT]
[/SIZE][FONT=Courier New][SIZE=2][COLOR=#0000ff]string[/COLOR][/SIZE][SIZE=2] dest = [/SIZE][SIZE=2][COLOR=#0000ff]new [/COLOR][/SIZE][SIZE=2][COLOR=#0000ff]string[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New](cs); [COLOR=green]//создаём строку из декодированных символов[/COLOR][/FONT][/SIZE][FONT=Courier New][SIZE=2]
[/SIZE][/FONT]
[/SIZE][SIZE=2]
[/SIZE]
13K
04 июня 2006 года
SmartX
11 / / 04.05.2006
кульно! :)
как говориться, гранд мерси!
респект и уважуха! :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог