Вопрос

в следующем коде:

var benq:Base64Encoder = new Base64Encoder();
benq.encode("force",0,5);
var tmp:String = benq.toString();

'tmp' оказывается пустой строкой, то есть длиной 0. Зачем? Как кодировать строку с помощью base64encoder?

Это было полезно?

Решение

Вы уверены, что ваш код не работает? Я просто скопировал и вставил его в тестовое приложение, и оно вернуло tmp как 'Zm9yY2U ='

Ты что-нибудь еще делаешь с var tmp? при отладке убедитесь, что при проверке вывода он обработал строку var tmp: String ....

<?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
    layout="vertical"
    verticalAlign="middle"
    backgroundColor="white"
    creationComplete="but1.label = encodeit()">

<mx:Script>
    <![CDATA[
        import mx.utils.Base64Encoder;

        private function encodeit(): String {
            var benq:Base64Encoder = new Base64Encoder();
            benq.encode("force",0,5);
            var tmp:String = benq.toString();
            return tmp;
        }
    ]]>
</mx:Script>

<mx:Button 
    id="but1" 
    width="100"
    height="100"
    /></mx:Application>

Другие советы

Используете ли вы Flex 3, поскольку это новая функция? Также попробуйте выполнить кодирование в bytearray, используя encodeBytes и encodeUTFBytes, возможно, они будут работать лучше.

Онлайн-справка доступна из Adobe , но я думаю, вы это знаете.

Хорошо, это работает. Код, который я разместил, отличался от того, что я фактически использовал. Я пропустил тот факт, что вызов toString () для Base64Encoder очищает свой внутренний буфер Таким образом, вызов его в следующий раз вернется пустая строка. Извините за беспокойство.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top