【问题标题】:What's Deno equivalent of Node.js Buffer.from(string)什么是 Node.js Buffer.from(string) 的 Deno 等价物
【发布时间】:2020-05-15 22:49:39
【问题描述】:

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

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

【问题讨论】:

    标签: node.js deno


    【解决方案1】:

    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 支持多种编码,例如base64hex,它们不适用于TextDecoder

    因此,如果您有一个 base64 字符串并且想要将其转换为 utf8 而不是这样做:

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

    您需要改用atob(与Web API 相同):

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-11
      • 2017-10-29
      • 2013-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多