在以下代码中:
var benq:Base64Encoder = new Base64Encoder();
benq.encode("force",0,5);
var tmp:String = benq.toString();
'tmp' 结果是一个空字符串,即长度为 0。为什么?如何使用 base64encoder 对字符串进行编码?
在以下代码中:
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,因为它似乎是一项新功能?还可以尝试使用 encodeBytes 和使用 encodeUTFBytes 编码成字节数组,也许这些效果更好。
Adobe提供了在线参考,但我想你知道这一点。
好的,它正在工作。我发布的代码与我实际使用的代码不同。我跳过了为 Base64Encoder 调用 toString() 会清除其内部缓冲区的事实。因此,下次调用它会返回一个空字符串。抱歉,添麻烦了。