Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   ByteArray.readMultiByte обрезает сроку (http://www.flasher.ru/forum/showthread.php?t=128404)

RAlfDog 07.08.2009 12:49

ByteArray.readMultiByte обрезает сроку
 
Скажите, пожалуйста, у метода ByteArray.readMultiByte есть какие-то ограничения?
Он у меня почему-то обрезает строку (с 100913 до 541 строк, т.е. данная строковая переменная содержит 541 символ возврата каретки "\n" вместо положенных 100913) :umnik2:

Т.е. гружу файл в data:ByteArray и просто перевожу в строку:
Код AS3:

var ctext:String=String(data);

все работает нормально, разбиваю строку в массив:
Код AS3:

var carray:Array=ctext.split('\n');

массив содержит 100913 элементов

А если читаю как кодировку "windows-1251" (файл приходит в этой кодировке) и перевожу в массив:
Код AS3:

var ctext:String=data.readMultiByte(data.length ,'windows-1251');
var carray:Array=ctext.split('\n');

то массив соджержит 541 элемент почему-то.

В чем проблема не пойму?

wvxvw 07.08.2009 13:04

Я думаю, есть смысл спросить тут:
http://bugs.adobe.com/jira

RAlfDog 07.08.2009 20:32

Разобрался.
В приходящем файле был какой-то "загадочный" символ, соответствующий байту с номером 6295 в массиве data, на нем перекодирование (data.readMultiByte(data.length ,'windows-1251')) и обрывалось. Кажется это был 0x00, в "блокноте" выглядел как пробел в конце строки.
Удали его и всё заработало.

etc 08.08.2009 11:57

Любая строка обрывается на нулевом байте.

Яски 08.08.2009 12:12

Потому что это символ конца строки

kackbip 08.08.2009 20:37

Конец строки это скорее 13 чем 0.
А 0 это уже ближе к концу файла :)

BlooDHounD 08.08.2009 23:43

конец строки это 0. а 13 это перенос.

Яски 09.08.2009 10:41

http://ru.wikipedia.org/wiki/Нуль-те...ованная_строка

kackbip 09.08.2009 14:48

ДА! Интересно. Спасибо, понял.


Часовой пояс GMT +4, время: 14:58.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.