2009-01-14 35 views
1

在以下代碼:土坯撓曲問題Base64Encoder

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

「TMP」原來是一個空字符串,即具有長度爲0 爲什麼呢? 如何使用base64encoder對字符串進行編碼?

回答

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> 
0

您是否正在使用Flex 3,因爲它似乎是一項新功能?另外嘗試使用encodeBytes編碼成bytearray並使用encodeUTFBytes,或許這些工作會更好。

聯機參考可用from Adobe,但我想你知道這一點。

0

好吧,它正在工作。 我發佈的代碼與我實際使用的代碼不同。 我跳過了調用toString()爲Base64Encoder 清除其內部緩衝區的事實。所以,下一次調用它會返回一個空字符串 。 對不起。