в следующем коде:
var benq:Base64Encoder = new Base64Encoder();
benq.encode("force",0,5);
var tmp:String = benq.toString();
'tmp' оказывается пустой строкой, т.е. длиной 0. Зачем? как закодировать строку с помощью base64encoder?





Вы используете Flex 3, поскольку это кажется новой функцией? Также попробуйте кодировать в массив байтов, используя encodeBytes и используя encodeUTFBytes, возможно, они работают лучше.
Доступна онлайн-ссылка от Adobe, но я думаю, вы это знаете.
Вы уверены, что ваш код не работает? Я просто скопировал и вставил его в тестовое приложение, и оно вернуло 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>
Хорошо, это работает. Код, который я опубликовал, отличался от того, что я использовал на самом деле. Я пропустил тот факт, что вызов toString () для Base64Encoder очищает свой внутренний буфер. Итак, позвонив в следующий раз, мы вернемся пустая строка. Извините за неприятности.