Base64:如何编码/解码页面的整个 HTML 代码

1 javascript firefox base64 google-chrome phantomjs

我正在尝试对页面进行编码:

btoa(document.querySelector('html').innerHTML)
Run Code Online (Sandbox Code Playgroud)

但它不适用于这样的数据,有谁知道,它是如何做到的?

mat*_*man 5

Unicode 字符可能是这个原因。尝试使用 mozilla 站点 ( https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/btoa ) 中的此示例:

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

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

// Usage:
utoa('? à la mode'); // 4pyTIMOgIGxhIG1vZGU=
atou('4pyTIMOgIGxhIG1vZGU='); // "? à la mode"

utoa('I \u2661 Unicode!'); // SSDimaEgVW5pY29kZSE=
atou('SSDimaEgVW5pY29kZSE='); // "I ? Unicode!"
Run Code Online (Sandbox Code Playgroud)