简体   繁体   English

JavaScript 将 UTF-8 转换为 base64

[英]JavaScript convert UTF-8 to base64

When I try to run the JS script below get an exception in the code:当我尝试运行下面的 JS 脚本时,代码中出现异常:

var encode = window.btoa('Hiroto √')

"@lehesamudi.js:14:26
b.render/<@https://static.jsbin.com/js/prod/runner-4.1.8.min.js:1:13924
a.use/<@https://static.jsbin.com/js/prod/runner-4.1.8.min.js:1:10866
"

You will need to encode the character first using the encodeURI function because it's not currently in the correct charset range for encoding using btoa.您需要首先使用encodeURI function 对字符进行编码,因为它当前不在使用 btoa 进行编码的正确字符集范围内。

Ie IE

window.btoa(encodeURI('Hiroto √')) => SGlyb3RvJTIwJUUyJTg4JTlB window.btoa(encodeURI('Hiroto √')) => SGlyb3RvJTIwJUUyJTg4JTlB

To decode:解码:

decodeURI(window.atob('SGlyb3RvJTIwJUUyJTg4JTlB')) => Hiroto √ decodeURI(window.atob('SGlyb3RvJTIwJUUyJTg4JTlB')) => Hiroto √

Try to escape before, please find the code below.尝试越狱之前,请找到下面的代码。

function encode(str) {
    return window.btoa(unescape(encodeURIComponent(str)));
}

function decode(str) {
    return decodeURIComponent(escape(window.atob(str)));
}

// Usage:
encode('Encode me with UTF-8 char: ∑ßåœ ≈ ∆c') // "RW5jb2RlIG1lIHdpdGggVVRGLTggY2hhcjog4oiRw5/DpcWTIOKJiCDiiIZj"
decode("RW5jb2RlIG1lIHdpdGggVVRGLTggY2hhcjog4oiRw5/DpcWTIOKJiCDiiIZj") //'Encode me with UTF-8 char: ∑ßåœ ≈ ∆c'

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM