在本教程中,我们将学习如何将字符串编码为 Base64 编码格式。
Javascript 提供了一个名为 btoa()(二进制到 ASCII)的内置函数来执行 Base64 编码。
让我们看看如何使用 btoa() 函数对字符串进行编码:
let str = "Hello onitroad"; //对字符串编码 let encodedString = btoa(str); console.log(encodedString); //SGVsbG8gb25pdHJvYWQ=
另外,请检查我们的 Base64 编码器工具。
默认的 btoa() 函数适用于由 8 位字节 (UTF-8) 组成的二进制数据。
但是, btoa() 函数接受一个字符串,其中每个字符代表一个 8 位字节。
如果一个字符串包含无法用 8 位表示的字符(例如 UTF16),它将被破坏。
要处理 Unicode 字符,首先需要将字符串转义为 8 位字节数组,然后使用 window.btoa() 函数编码为 Base64:
function base64EncodeUnicode(str) { //首先,使用 encodeURIComponent 对字符串进行转义以获得字符的 UTF-8 编码, //然后,我们将百分比编码转换为原始字节,并将其添加到 btoa() 函数中。 utf8Bytes = encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function (match, p1) { return String.fromCharCode('0x' + p1); }); return btoa(utf8Bytes); } base64EncodeUnicode('Hello onitroad') //SGVsbG8gb25pdHJvYWQ=
有一个对应的函数 atob() 可以将 base64 编码转换为字符串。
atob() 函数返回一个字符串,其中每个字符代表一个 8 位字节,这意味着它的值将介于 0 和 0xff 之间。
let str = "Hello onitroad"; let enc = btoa(str); console.log(enc); //输出: "SGVsbG8gb25pdHJvYWQ=" let dec = atob(enc); console.log(dec); //输出: "Hello onitroad"
Base64 编码和解码
Base64 是一组二进制到文本编码方案,通过将 ASCII 字符串格式中的二进制数据转换为基数 64 表示来表示二进制数据。
Base64 是一种编码算法,允许将任何字符转换为由拉丁字母、数字、加号和斜线组成的字母表。
在 JavaScript 中,有两个函数用于解码和编码 base64 字符串:btoa() 用于从二进制数据字符串创建 base-64 编码的 ASCII 字符串和 atob(),用于解码 base64 编码的字符串。
日期:2020-06-02 22:16:17 来源:oir作者:oir