Показать сообщение отдельно
Старый 20.08.2008, 17:28
tot_to вне форума Посмотреть профиль Отправить личное сообщение для tot_to Найти все сообщения от tot_to
  № 1  
Ответить с цитированием
tot_to

Регистрация: Aug 2008
Сообщений: 7
По умолчанию Работа с данными в utf-16

Пытался передать по сокету строки в utf-16, однако AS3 упорно читал только первый передаваемый символ. Поэтому попробовал написать такой тестовый код:
Код:
var buffer:ByteArray = new ByteArray();
buffer.writeMultiByte("test", "utf-16");
buffer.position = 0;
for (var i:uint = 0; i<buffer.length; i++)
trace(buffer.readUnsignedByte());
Вывод у этого кода получается вот такой:
116
101
115
116
Тогда как в UTF-16 в случае аски-символов каждый второй байт должен бы быть нулевым, то есть в случае UTF-16BE вывод должен быть таким:
0
116
0
101
0
115
0
116
После этого стало понятно почему читался только 1-й символ: readMultiByte() видела нулевой байт и считала, что это конец строки.