Frage

in dem folgenden Code:

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

‚tmp‘ stellt sich heraus, eine leere Zeichenfolge zu sein, das heißt mit der Länge 0. Warum? wie eine Zeichenfolge mit Base64Encoder zu codieren?

War es hilfreich?

Lösung

Sind Sie sicher, dass Ihr Code funktioniert nicht. Ich habe gerade kopiert und in ein Test-App eingefügt und es zurück tmp als ‚Zm9yY2U =‘

Tun Sie etwas anderes auf die var tmp? wenn das Debuggen sicher, dass es die var tmp verarbeitet hat: String .... Linie, wenn Sie die Ausgabe Überprüfung

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

Andere Tipps

Sind Sie mit Flex 3, da es ein neues Feature zu sein scheint? Versuchen Sie auch kodiert, in einen bytearray mit encodeBytes und encodeUTFBytes verwenden, vielleicht diese besser funktionieren.

Online-Referenz verfügbar von Adobe , aber ich denke, das weißt du.

Ok, es funktioniert. Der Code, den ich geschrieben war anders, was ich tatsächlich verwendet wird. Ich übersprang über die Tatsache, dass Aufruf toString () für Base64Encoder löscht seinen internen Puffer. Also, es das nächste Mal aufrufen würde zurückkehren eine leere Zeichenfolge. Sorry für die Mühe.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top