ホームページ >ウェブフロントエンド >jsチュートリアル >Base64 トランスコーディングとデコーディングに btoa と atob を使用する JavaScript の詳細な紹介

Base64 トランスコーディングとデコーディングに btoa と atob を使用する JavaScript の詳細な紹介

黄舟
黄舟オリジナル
2017-03-21 14:28:171966ブラウズ

javascriptネイティブAPIは元々Base64をサポートしていますが、以前のJavaScriptの制限によりBase64は基本的に使えません。現在の html5 標準が正式化されると、Base64 には FileReader API などの Html5 API の変換のための大きなスペースがあり、キャンバスやビデオのスクリーンショットも実現できるようになります

ネイティブ JavaScript API はすでにサポートしています。 Base64 ですが、JavaScript の以前の制限により、Base64 は基本的に役に立ちません。現在の HTML5 標準が正式化されると、Base64 は FileReader API などの HTML5 API に対して大きな変換スペースを確保し、ドラッグ アンド ドロップでアップロードしたり、Canvas や Video のスクリーンショットを実現したりすることができます。

さて、Base64 のトランスコーディングとデコーディングの方法については、前置きでたくさん述べました:

1. JavaScript で Base64 トランスコーディングを使用する方法を見てみましょう

var str = 'javascript';

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

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

2。 Base64 トランスコーディングの オブジェクト 文字列 のみであるため、ここで特に注意が必要なのは Unicode トランスコーディングです。

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

Uncaught DOMException: 'Window' で 'btoa' の実行に失敗しました: エンコードされる string には Latin1 range 以外の文字が含まれています。

明らかに、このメソッドは機能しません。中国語の文字をサポートしています

これには、window.encodeURIComponent と window.decodeURIComponent を使用する必要があります

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

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

以上がBase64 トランスコーディングとデコーディングに btoa と atob を使用する JavaScript の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。