Flex: ByteArray to string - PullRequest
       2

Flex: ByteArray to string

2 голосов
/ 01 октября 2010

Как я могу преобразовать ByteArray в строку.toString() не работает, так как у меня есть некоторые специальные символы, и он показывает мне только первый символ.

Вот пример:

49, 48, 54, 0, 50, 54, 51, 48, 57, 52, 52, 49, 48, 48, 48, 56, 0, 49, 0, 49, 0, 73, 77, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0, 49, 0, 50, 54, 51, 49, 53, 56, 50, 52, 48, 48, 48, 52, 0, 0, 0, 0, 49, 53, 49, 46, 48, 48, 0, 0, 70, 82, 0, 0, 0, 0, 54, 48, 55, 48, 90, 81, 57, 51, 0, 70, 82, 0, 48, 0, 70, 67, 65, 0, 76, 73, 86, 82, 89, 0, 0, 54, 48, 55, 48, 90, 81, 57, 51, 0, 70, 82, 0, 69, 85, 82, 0, 52, 50, 48, 48, 46, 48, 48, 0, 49, 0, 49, 0, 51, 48, 0, 0, 66, 65, 86, 75, 76, 0, 0, 49, 48, 49, 48, 52, 0, 0, 0, 0, 0, 49, 48, 49, 48, 54, 57, 49, 48, 49, 53, 0, 0, 0

Спасибо за ваше время.

Ответы [ 2 ]

1 голос
/ 02 октября 2010

Для дальнейшего использования вы можете преобразовать байтовый массив в строку Base64, что будет более стандартным способом сериализации двоичного файла в строку.

Библиотека mx имеет класс кодировщика / декодера Base64, но есть несколько других реализаций, лежащих вокруг ....

Прочитайте эту статью: http://jpauclair.net/2010/01/09/base64-optimized-as3-lib/

1 голос
/ 01 октября 2010

Использование String.fromCharCode :

var myStr:String = String.fromCharCode(49, 48, 54, 32, 50, 54, 51, 48, 57, 52, 52, 49, 48, 48, 48, 56, 32, 49, 32, 49, 32, 73, 77, 32, 52, 32, 32, 32, 32, 32, 32, 32, 32, 49, 32, 49, 32, 50, 54, 51, 49, 53, 56, 50, 52, 48, 48, 48, 52, 32, 32, 32, 32, 49, 53, 49, 46, 48, 48, 32, 32, 70, 82, 32, 32, 32, 32, 54, 48, 55, 48, 90, 81, 57, 51, 32, 70, 82, 32, 48, 32, 70, 67, 65, 32, 76, 73, 86, 82, 89, 32, 32, 54, 48, 55, 48, 90, 81, 57, 51, 32, 70, 82, 32, 69, 85, 82, 32, 52, 50, 48, 48, 46, 48, 48, 32, 49, 32, 49, 32, 51, 48, 32, 32, 66, 65, 86, 75, 76, 32, 32, 49, 48, 49, 48, 52, 32, 32, 32, 32, 32, 49, 48, 49, 48, 54, 57, 49, 48, 49, 53, 32, 32); 

РЕДАКТИРОВАТЬ: заменить нулевые байты 0 на 32 (пробел), и вы получите это:

106 263094410008 1 1 IM 4 1 1 263158240004 151,00 FR 6070ZQ93 FR 0 FCA LIVRY 6070ZQ93 FR EUR 4200,00 1 1 30 BAVKL 10104 1010691015

...