Domanda

nel seguente codice:

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

'tmp' risulta essere una stringa vuota, cioè con lunghezza 0. perché? come codificare una stringa usando base64encoder?

È stato utile?

Soluzione

Sei sicuro che il tuo codice non funzioni. L'ho appena copiato e incollato in un'app di test e ha restituito tmp come 'Zm9yY2U ='

Stai facendo qualcos'altro al var tmp? se il debug si assicura che abbia elaborato la riga var tmp: String .... quando si controlla l'output

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

Altri suggerimenti

Stai usando Flex 3, in quanto sembra essere una nuova funzionalità? Prova anche a codificare in un bytearray usando encodeBytes e usando encodeUTFBytes, forse funzionano meglio.

Il riferimento online è disponibile da Adobe , ma immagino tu lo sappia.

Ok, funziona. Il codice che ho pubblicato era diverso da quello che stavo effettivamente usando. Ho ignorato il fatto che chiamando toString () per Base64Encoder cancella il suo buffer interno. Quindi, chiamandolo la prossima volta sarebbe tornato una stringa vuota. Ci scusiamo per il disturbo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top