【问题标题】:Convert byte array to encoded UFT8 in Node在 Node 中将字节数组转换为编码的 UFT8
【发布时间】:2021-12-24 03:45:01
【问题描述】:

我希望在 Node.js 中将字节数组转换为编码的 UFT8。在 Python 中,我使用 bytes() 方法进行转换,但在 Node 中找不到类似的函数。

一个示例输入是[0, 1, 66, 119, 208],理想情况下它会返回\x00\x01Bw\xd0

【问题讨论】:

    标签: javascript node.js arrays utf-8


    【解决方案1】:

    如今的 Node.js 几乎遵循浏览器标准,因此 TextDecoder https://developer.mozilla.org/en-US/docs/Web/API/TextDecoder/TextDecoder 是节点的一部分。

    所以下面的代码可以在浏览器或节点中运行。

    const r = new TextDecoder().decode(new Uint8Array([0, 1, 66, 119, 208]));
    
    console.log(r);
    console.log(encodeURI(r));
    console.log(JSON.stringify(r));

    问题是询问如何将字节转换为 utf-8。以上就是这样做的。

    在编码兼容 C 字符串之后,OP 更多-> 这个存储库看起来应该可以解决问题.. https://github.com/harold4/node-string-escape-for-cpp/blob/master/index.js

    【讨论】:

    • 感谢您的回答,当我运行代码 sn-p 时,我得到了\u0000\u0001Bw�。我怎样才能从那个转到\x00\x01Bw\xd0
    • @Alex 所以你不想要 UTF8?。
    • 也许我错误地识别出我正在寻找的数据类型。我将对该格式使用什么类型的编码?会是ASCII吗?谢谢
    • @Alex 这看起来像是 C 字符串转义。并且应该可以模拟,只需要知道哪些字符是十六进制的,哪些不是。一个简单的查找表可能在这里工作。这里有一些信息-> en.wikipedia.org/wiki/Escape_sequences_in_C
    • 发现这个似乎已经完成了所有艰苦的工作-> github.com/harold4/node-string-escape-for-cpp/blob/master/…
    猜你喜欢
    • 2015-03-15
    • 2016-03-28
    • 1970-01-01
    • 1970-01-01
    • 2012-11-08
    • 2019-04-23
    • 1970-01-01
    • 1970-01-01
    • 2020-10-26
    相关资源
    最近更新 更多