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トランスコードをどのように使用するかを見てみましょう
二.トランスコードの場合、Base 64トランスコードの対象は文字列のみであるため、他のデータにはこのような限界があり、ここで特にUnicodeトランスコードに注意が必要である.
Uncaught DOMException: Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.
明らかに、この方法はだめです.では、どのように漢字を支持させるのでしょうか.
これはwindowを使います.义齿decodeURIComponent
btoaとatobの使い方はこんなに簡単なので、試してみてください.
では、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の使い方はこんなに簡単なので、試してみてください.