什么是 Deno 等价于 Node.js Buffer.from(string)

Jua*_*los 6 node.js deno

如何将字符串转换为缓冲区?

我试过了:Uint8Array.from('hello world')但它不起作用

Mar*_*nde 15

等价于Buffer.from('Hello World')

const encoder = new TextEncoder()
const buffer = encoder.encode('Hello World');
Run Code Online (Sandbox Code Playgroud)

如果您想将其解码回来,则需要使用TextDecoder.

const decoder = new TextDecoder()
console.log(decoder.decode(buffer))
Run Code Online (Sandbox Code Playgroud)

Deno 尝试在可能的情况下实现Web API,这就是它在浏览器上以相同方式工作的原因。


const encoder = new TextEncoder()
const buffer = encoder.encode('Hello World');
Run Code Online (Sandbox Code Playgroud)


请记住,Node.jsBuffer支持多种编码,例如base64hex,这不适用于TextDecoder

因此,如果您有一个base64字符串并希望将其转换为utf8而不是执行以下操作:

const base64String = Buffer.from('Hello World').toString('base64'); // Hello World
const utf8String = Buffer.from(base64String, 'base64').toString();
Run Code Online (Sandbox Code Playgroud)

您需要使用(与Web APIatob相同):

const decoder = new TextDecoder()
console.log(decoder.decode(buffer))
Run Code Online (Sandbox Code Playgroud)