使用Base64Encoder的adobe flex问题

时间:2009-01-14 12:17:39

标签: flex adobe base64

在以下代码中:

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

'tmp'原来是一个空字符串,即长度为0。 为什么? 如何使用base64encoder对字符串进行编码?

3 个答案:

答案 0 :(得分:3)

您确定您的代码无效吗? 我只是复制并粘贴到一个测试应用程序中,它返回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>

答案 1 :(得分:0)

您使用的是Flex 3,因为它似乎是一项新功能吗?也可以尝试使用encodeBytes编码成bytearray并使用encodeUTFBytes,也许这些工作更好。

可以在线参考from Adobe,但我想你知道。

答案 2 :(得分:0)

好的,它正在发挥作用。 我发布的代码与我实际使用的代码不同。 我跳过了为Base64Encoder调用toString()的事实 清除其内部缓冲区。所以,下一次调用它会返回 一个空字符串。 抱歉,麻烦。