Pregunta

en el siguiente código:

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

'tmp' resulta ser una cadena vacía, es decir, con longitud 0. ¿por qué? ¿Cómo codificar una cadena usando base64encoder?

¿Fue útil?

Solución

¿Está seguro de que su código no funciona? Acabo de copiarlo y pegarlo en una aplicación de prueba y devolvió tmp como 'Zm9yY2U ='

¿Estás haciendo algo más a la var tmp? si se está depurando, asegúrese de que haya procesado la línea var tmp: String .... cuando verifique la salida

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

Otros consejos

¿Está utilizando Flex 3, ya que parece ser una nueva característica? También intente codificar en un bytearray usando encodeBytes y encodeUTFBytes, quizás estos funcionen mejor.

La referencia en línea está disponible de Adobe , pero supongo que lo sabes.

Ok, está funcionando. El código que publiqué era diferente de lo que realmente estaba usando. Me salteé el hecho de que llamar a toString () para Base64Encoder borra su búfer interno. Entonces, llamarlo la próxima vez volvería Una cadena vacía. Perdón por el problema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top