在以下代码中:
var benq:Base64Encoder = new Base64Encoder();
benq.encode("force",0,5);
var tmp:String = benq.toString();
'tmp'原来是一个空字符串,即长度为0。 为什么? 如何使用base64encoder对字符串进行编码?
答案 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()的事实 清除其内部缓冲区。所以,下一次调用它会返回 一个空字符串。 抱歉,麻烦。