JavaScript windowオブジェクトのatob()とbtoa()

1187 ワード

JAvascriptオリジナルのapiはもともとBase 64をサポートしていたが、これまでのjavascriptの限界によりBase 64は基本的に役に立たなかった.現在html 5規格が正式化されている間、Base 64には大きな転換空間があり、Html 5 Apiに登場するFileReader Api、ドラッグアップロード、さらにCanvas、Videoスクリーンショットなどが実現される.
では、Base 64のトランスコードと復号にはどのような方法がありますか.
一.JavascriptでBase 64トランスコードをどのように使用するかを見てみましょう
var str = 'javascript';

window.btoa(str)
//     "amF2YXNjcmlwdA=="

window.atob("amF2YXNjcmlwdA==")
//     "javascript"

二.トランスコードの場合、Base 64トランスコードの対象は文字列のみであるため、他のデータにはこのような限界があり、ここで特にUnicodeトランスコードに注意が必要である.
var str = "China,  "
window.btoa(str)

Uncaught DOMException: Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.
明らかに、この方法はだめです.では、どのように漢字を支持させるのでしょうか.
これはwindowを使います.义齿decodeURIComponent
var str = "China,  ";
window.btoa(window.encodeURIComponent(str))
//"Q2hpbmElRUYlQkMlOEMlRTQlQjglQUQlRTUlOUIlQkQ="

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

btoaとatobの使い方はこんなに簡単なので、試してみてください.