【问题标题】:adobe flex problem with Base64EncoderBase64Encoder 的 adobe flex 问题
【发布时间】:2009-01-14 12:17:38
【问题描述】:

在以下代码中:

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

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

【问题讨论】:

    标签: apache-flex adobe base64


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您是否使用 Flex 3,因为它似乎是一项新功能?还可以尝试使用 encodeBytes 和使用 encodeUTFBytes 编码成字节数组,也许这些效果更好。

      在线参考是可用的from Adobe,但我想你知道。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-09-16
          • 1970-01-01
          相关资源
          最近更新 更多