Pergunta

no código a seguir:

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

'tmp' acaba por ser uma cadeia vazia, ou seja, com comprimento 0. porque? como codificar uma string usando base64encoder?

Foi útil?

Solução

Você tem certeza que seu código não está funcionando. Eu apenas copiei e colei em um aplicativo de teste e voltou tmp como 'Zm9yY2U ='

Você está fazendo qualquer outra coisa para a var tmp? Se a depuração se certificar de que processou o var tmp: String .... linha quando a sua verificação a saída

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

Outras dicas

Você está usando Flex 3, uma vez que parece ser um novo recurso? Além disso, tente codificação em um bytearray usando encodeBytes e usando encodeUTFBytes, talvez estes trabalham melhor.

referência on-line está disponível da Adobe , mas eu acho que você sabe disso.

Ok, ele está trabalhando. O código que eu postei foi diferente do que eu estava realmente usando. Eu saltei sobre o fato de que chamar toString () para Base64Encoder apaga o seu tamp interno. Então, chamando-a próxima vez que voltar uma cadeia vazia. Desculpem o problema.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top