【发布时间】:2020-05-15 22:49:39
【问题描述】:
如何将字符串转换为缓冲区?
我试过了:Uint8Array.from('hello world') 但它不起作用
【问题讨论】:
如何将字符串转换为缓冲区?
我试过了:Uint8Array.from('hello world') 但它不起作用
【问题讨论】:
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 APIs,原因是它在浏览器上的工作方式相同。
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 支持多种编码,例如base64 或hex,它们不适用于TextDecoder
因此,如果您有一个 base64 字符串并且想要将其转换为 utf8 而不是这样做:
const base64String = Buffer.from('Hello World').toString('base64'); // Hello World
const utf8String = Buffer.from(base64String, 'base64').toString();
const base64String = btoa('Hello World');
const utf8String = atob(base64String);
console.log('Base64:', base64String);
console.log('utf8string:', utf8String);
【讨论】: