Maison >interface Web >js tutoriel >Introduction détaillée à JavaScript utilisant btoa et atob pour le transcodage et le décodage Base64

Introduction détaillée à JavaScript utilisant btoa et atob pour le transcodage et le décodage Base64

黄舟
黄舟original
2017-03-21 14:28:171968parcourir

javascriptL'API native prend à l'origine en charge Base64, mais en raison des limitations du javascript précédent, Base64 est fondamentalement inutile. Lorsque la norme HTML5 actuelle sera formalisée, Base64 disposera d'un plus grand espace de transformation. Pour les API Html5 telles que l'API FileReader, le téléchargement par glisser-déposer et même les captures d'écran Canvas et vidéo,

l'API native Javascript peut être réalisée. initialement pris en charge Base64, mais en raison des limitations du javascript précédent, Base64 était fondamentalement inutile. Lorsque la norme HTML5 actuelle sera formalisée, Base64 disposera d'un grand espace de transformation pour les API Html5 telles que FileReader Api, le téléchargement par glisser-déposer, et même des captures d'écran Canvas et vidéo pourront être réalisées.

D'accord, j'ai beaucoup dit dans la préface, quelles sont les méthodes de transcodage et de décodage Base64 :

1 Voyons comment utiliser le transcodage Base64 en javascript.

var str = 'javascript';

window.btoa(str)
//转码结果 "amF2YXNjcmlwdA=="

window.atob("amF2YXNjcmlwdA==")
//解码结果 "javascript"

2. Pour le transcodage, l' objet du transcodage Base64 ne peut être qu'une chaîne , par conséquent, pour les autres données, il y a également certains Ce qui nécessite une attention particulière ici, c'est le transcodage Unicode.

var str = "China,中国"
window.btoa(str)

DOMException non interceptée : échec de l'exécution de 'btoa' sur 'Window' : la chaîne à encoder contient des caractères en dehors de la plage Latin1 .

Évidemment, cette méthode n'est pas possible, alors comment faire pour qu'elle supporte les caractères chinois

Cela nécessite l'utilisation de window.encodeURIComponent et window.decodeURIComponent

var str = "China,中国";
window.btoa(window.encodeURIComponent(str))
//"Q2hpbmElRUYlQkMlOEMlRTQlQjglQUQlRTUlOUIlQkQ="

window.decodeURIComponent(window.atob('Q2hpbmElRUYlQkMlOEMlRTQlQjglQUQlRTUlOUIlQkQ='))
//"China,中国"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn