跳到主要内容

十六进制和 Base64 编码

在一些情况下,在不同的字符串和数组缓冲区格式之间进行编码和解码会很实用。Deno 标准库使这变得很容易。

在 Github 上编辑
标准库提供了十六进制和 Base64 编码和解码实用程序
import * as base64 from "jsr:@std/encoding/base64";
import * as hex from "jsr:@std/encoding/hex";
我们可以使用 `base64.encode` 方法轻松地将字符串或数组缓冲区编码为 Base64。
const base64Encoded = base64.encode("somestringtoencode");
console.log(base64.encode(new Uint8Array([1, 32, 67, 120, 19])));
然后,我们可以使用 `decode` 方法将 Base64 解码为字节数组。
const base64Decoded = base64.decode(base64Encoded);
如果我们想以字符串形式获取值,可以使用内置的 `TextDecoder`。我们会经常使用它们,所以我们可以将它们存储在变量中以供重复使用。
const textEncoder = new TextEncoder();
const textDecoder = new TextDecoder();
console.log(textDecoder.decode(base64Decoded));
要编码十六进制,我们始终使用数组缓冲区。要使用字符串作为输入,我们可以编码我们的文本。
const arrayBuffer = textEncoder.encode("somestringtoencode");
const hexEncoded = hex.encode(arrayBuffer);
console.log(hexEncoded);
要将十六进制值读取为字符串,我们可以解码缓冲区。
console.log(textDecoder.decode(hexEncoded));
我们可以使用 `decode` 方法转换回字符串。
const hexDecoded = hex.decode(hexEncoded);
console.log(textDecoder.decode(hexDecoded));

运行 此示例 使用 Deno CLI 在本地运行

deno run https://docs.deno.org.cn/examples/hex-base64-encoding.ts