Como você pode codificar uma string para Base64 em JavaScript?
Eu tenho um script PHP que pode codificar uma imagem PNG para uma string Base64.
I'gostaria de fazer a mesma coisa usando o JavaScript. Eu sei como abrir arquivos, mas I'não tenho certeza de como fazer a codificação. I'não estou acostumado a trabalhar com dados binários.
744
3
Você pode utilizar
btoa()
eatob()
para converter para e da codificação base64.Parece haver alguma confusão nos comentários sobre o que estas funções aceitam/retornam, por isso...
btoa()
aceita uma "string" onde cada caractere representa um byte de 8 bits - se você passar uma string contendo caracteres que não podem ser representados em 8 bits, provavelmente ele irá quebrar. Isto não é um problema se você está realmente tratando a string como um array de bytes, mas se você está tentando fazer algo mais, então você terá que codificá-la primeiro.atob()
retorna uma "string" onde cada caractere representa um byte de 8 bits - ou seja, seu valor estará entre0
e0xff
. Isto não significa que é ASCII - presumivelmente se você estiver utilizando esta função, você espera estar trabalhando com dados binários e não texto.Ver também:
[Daqui][1]:
O código da Sunny é ótimo, exceto que ele quebra no IE7 por causa das referências a "isto". Corrigido pela substituição de tais referências por "Base64":