Показать сообщение отдельно
Старый 13.09.2012, 15:02
maxkar вне форума Посмотреть профиль Отправить личное сообщение для maxkar Найти все сообщения от maxkar
  № 2  
Ответить с цитированием
maxkar

Регистрация: Nov 2010
Сообщений: 497
Цитата:
Возможно существуют какие-то способы передачи ByteArray от php сервера? И нужно пользоваться именно ими?
Base64 вполне нормален. Только для этого нужно понимать, где и с чем он работает. С какой стороны у него кормятся байты и из какой стороны вылезают строки (на самом деле байты в определенном диапазоне, которые затем конвертируются в строку).
Дальше вопрос по вашему коду:
Код AS3:
var encoded:String = Base64.encode(strBytes);
var decoded:ByteArray = Base64.decode(encoded);
trace(decoded.toString())
Вы трейсите byte array. Почему вы его передаете как текст? Почему вы не трейсите сразу strBytes? В этой точке ваш decoded в точности равен strBytes (потому что вы выполнили прямое и обратное преобразование). Понимаете ли вы, что преобразование byteArray в строку - операция необратимая (там байты могут потеряться, например).
Цитата:
var decoded:ByteArray = Base64.decode("1X0ceapxfyHFztoZ34dmzp7up0XnRaOt/IvCyAsuGhcGaXGSndGJnFbNxIxTrFym");
var testStr:String = decoded.toString();
В чем смысл переводить бинарные данные в строку? Затем писать ее в utf-8 (очевидно же, что получится уже другой byte array).

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