>웹 프론트엔드 >JS 튜토리얼 >Base64 트랜스코딩 및 디코딩을 위해 btoa 및 atob을 사용하는 JavaScript에 대한 자세한 소개

Base64 트랜스코딩 및 디코딩을 위해 btoa 및 atob을 사용하는 JavaScript에 대한 자세한 소개

黄舟
黄舟원래의
2017-03-21 14:28:171939검색

javascript네이티브 API는 원래 Base64를 지원하지만 이전 자바스크립트의 한계로 인해 Base64는 기본적으로 쓸모가 없습니다. 현재 HTML5 표준이 정식화되면 Base64는 FileReader API와 같은 Html5 API, 드래그 앤 드롭 업로드, 심지어 Canvas 및 Video 스크린샷까지

javascript 네이티브 API를 구현할 수 있는 더 큰 공간을 갖게 됩니다. 원래는 Base64를 지원했지만 이전 자바스크립트의 한계로 인해 Base64는 기본적으로 쓸모가 없었습니다. 현재 HTML5 표준이 공식화되면 Base64는 FileReader Api와 같은 Html5 Api의 경우 드래그 앤 드롭 업로드는 물론 Canvas 및 Video 스크린샷까지 구현할 수 있는 넓은 공간을 갖게 됩니다.

알겠습니다. 서문에서 Base64 트랜스코딩 및 디코딩 방법이 무엇인지 많이 설명했습니다.

1. 자바스크립트에서 Base64 트랜스코딩을 사용하는 방법을 살펴보겠습니다.

var str = 'javascript';

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

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

2. Base64 트랜스코딩의 객체 문자열 만 가능하므로 다른 데이터에는 특정 제한이 있습니다. 여기서 특별한 주의가 필요한 것은 유니코드 트랜스코딩입니다.

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

잡히지 않은 DOMException: 'Window'에서 'btoa' 실행 실패: 인코딩할 문자열에 Latin1 범위 외부의 문자가 포함되어 있습니다.

분명히 이 방법은 불가능합니다. 그런데 어떻게 한자를 지원하게 만들 수 있나요?

window.encodeURIComponent 및 window.decodeURIComponent를 사용해야 합니다

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

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

위 내용은 Base64 트랜스코딩 및 디코딩을 위해 btoa 및 atob을 사용하는 JavaScript에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.