菜单
文档breadcrumb arrow Grafana k6breadcrumb arrow JavaScript APIbreadcrumb arrow k6/encodingbreadcrumb arrow b64decode( input, [encoding], [format] )
开源

b64decode( input, [encoding], [format] )

将传入的 base64 编码的 input 字符串解码为未编码的原始输入,格式可以是二进制或字符串。

参数类型描述
inputstring要进行 base64 解码的字符串。
encoding (可选)string要使用的 base64 编码。
可用选项包括
- “std”:标准编码,使用 = 填充字符以及编码字母表中的 +/ 字符。这是默认值。
- “rawstd”:类似于 std,但不包含 = 填充字符。
- “url”std 的 URL 安全版本,编码字母表不包含 +/ 字符,而是包含 -_ 字符。
- “rawurl”:类似于 url,但不包含 = 填充字符。
format (可选)string如果为 "s",则将数据作为字符串返回;如果未指定,则返回 ArrayBuffer 对象。

返回值

类型描述
ArrayBuffer / string根据 format 参数,返回 input 字符串的 base64 解码版本,格式为字符串或 ArrayBuffer。

示例

JavaScript
import { check } from 'k6';
import encoding from 'k6/encoding';

export default function () {
  const str = 'hello world';
  const enc = 'aGVsbG8gd29ybGQ=';
  const expBin = new Uint8Array([104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]);
  check(null, {
    'is decoding to string correct': () => encoding.b64decode(enc, 'std', 's') === str,
    'is decoding to ArrayBuffer correct': () => {
      const decBin = new Uint8Array(encoding.b64decode(enc));
      if (decBin.length != expBin.length) return false;
      for (let i = 0; i < decBin.length; i++) {
        if (decBin[i] !== expBin[i]) return false;
      }
      return true;
    },
  });
}