📜  btoa() - Javascript (1)

📅  最后修改于: 2023-12-03 15:13:43.656000             🧑  作者: Mango

btoa() - JavaScript

简介

btoa() 方法用于将字符串转换为 base64 编码的字符串。

btoa(string)

参数:

  • string: 必需,要进行 base64 编码的字符串。

返回值:

  • 返回一个新的字符串,表示输入字符串的 base64 编码版本。
示例
const originalString = 'Hello, world!';
const encodedString = btoa(originalString);
console.log(encodedString); // "SGVsbG8sIHdvcmxkIQ=="

const decodedString = atob(encodedString);
console.log(decodedString); // "Hello, world!"
注意事项
  • btoa() 方法只能将 ASCII 字符串转换为 base64 编码的字符串。如果输入字符串包含非 ASCII 字符,则必须首先将其转换为 ASCII 字符串,然后才能使用 btoa() 进行编码。
const nonAsciiString = 'こんにちは、世界!';
const asciiString = unescape(encodeURIComponent(nonAsciiString));
console.log(asciiString); // "%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81%E4%B8%96%E7%95%8C%EF%BC%81"
const encodedAsciiString = btoa(asciiString);
console.log(encodedAsciiString); // "JTI1MjUyNTIlMjUyNTIxJTI1MjUyNTIlMjUyNTIxJTI1MjUyNTIlMjUyNTIxJTI1MjUyNTIlMjUyNTIxJTI1MjUyNTIlMjUyNTIxCg=="
  • btoa() 方法返回的结果是一个字符串,该字符串中可能包含 +/= 等特殊字符。这些字符在某些上下文中可能会被解释为特殊含义,因此需要特别注意。通常情况下,我们会在使用 btoa() 方法之前将其输入字符串进行 URL 编码,以避免这种问题。同样地,在解码 base64 字符串时,也需要特别处理可能存在的特殊字符。
const originalUrl = 'https://www.example.com/search?q=hello+world';
const encodedUrl = btoa(encodeURIComponent(originalUrl));
console.log(encodedUrl); // "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vc2VhcmNoP3E9aGVsbG8rd29ybGQ="
const decodedUrl = decodeURIComponent(atob(encodedUrl));
console.log(decodedUrl); // "https://www.example.com/search?q=hello+world"