Bonjour,
Je souhaite qu'une suite quelconque d'octets contenu dans un tableau Uint8Array soit convertie en Base64. Initialement, j'ai �crit la fonction ci-dessous, test�e avec Firefox.
Puis en lisant des codes r�cup�r�s de-ci de-l�, j'ai trouv� une autre fonction donnant le m�me r�sultat, test�e �galement avec Firefox.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8 f1=function(tab) { var base64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; var bin="", b64=""; for (var octet of tab) bin+=octet.toString(2).padStart(8, "0"); for (var i=0; i<bin.length; i+=6) b64+=base64[parseInt(bin.slice(i, i+6).padEnd(6, "0"), 2)]; b64+="=".repeat((3-(tab.length%3))%3); return b64; };
Je me suis donc document� sur la m�thode fromCharCode(). Elle prend normalement en param�tre une suite de nombres repr�sentant du texte encod� en utf-16. Il n'est pas indiqu� qu'elle puisse prendre en param�tre un tableau Uint8Array!!!
Code : S�lectionner tout - Visualiser dans une fen�tre � part f2=function(tab) { return btoa(String.fromCharCode(...tab)); };
https://developer.mozilla.org/en-US/...g/fromCharCode
Qu'en pensez-vous? Laquelle des deux fonctions a la meilleure compatibilit� avec les divers navigateurs?
Partager