7

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

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

4

1 回答 1

8

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

const encoder = new TextEncoder()
const buffer = encoder.encode('Hello World');

如果你想把它解码回来,你需要使用TextDecoder.

const decoder = new TextDecoder()
console.log(decoder.decode(buffer))

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


const decoder = new TextDecoder();
const encoder = new TextEncoder();
const buffer = encoder.encode('Hello World');

console.log(buffer);
console.log(decoder.decode(buffer))


请记住,Node.js'Buffer支持多种编码,例如base64or hex,这将无法使用TextDecoder

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

const base64String = Buffer.from('Hello World').toString('base64'); // Hello World
const utf8String = Buffer.from(base64String, 'base64').toString();

您需要使用atob(Same as Web API ) 代替:

const base64String = btoa('Hello World');
const utf8String = atob(base64String);
console.log('Base64:', base64String);
console.log('utf8string:', utf8String);

于 2020-05-15T07:07:39.297 回答