【问题标题】:Convert buffer to readable string javascript将缓冲区转换为可读字符串javascript
【发布时间】:2019-07-30 05:46:18
【问题描述】:

我收到一个 JSON 作为缓冲区。我想将其解析为可读或 JSON 对象。

但是,尽管有各种技巧(JSON.stringify()toString('utf8'),我还是无法完成。

这是我目前所拥有的:

这就是它给我的:

我怎样才能把它变成可读的东西?

【问题讨论】:

  • 请访问help center,使用tour查看内容和How to Ask。做一些研究,搜索关于SO的相关主题;如果您遇到困难,请发布您尝试的minimal reproducible example,并注明输入和预期输出。请不要发布代码图片
  • 看起来你需要在结果上使用 fromCharCode
  • @mplungjan 来自没有剪贴板共享能力的虚拟机的代码。
  • 最后一个似乎是“可读的东西”。似乎另一端的序列化出错了。
  • 大声笑 :))) 你需要找到供应商并找出他们为什么给你发邮件[object Object]console.log(String.fromCharCode(91,111,98,106,101,99,116,32,79,98,106,101,99,116,93))

标签: javascript node.js protocol-buffers decoding


【解决方案1】:

试试

console.log(Buffer.from(val).toString());

这会将[object Object] 转换为字符串

【讨论】:

    【解决方案2】:

    您的代码正在运行。您拥有的缓冲区实际上是字符串"[object Object]"

    let b = Buffer.from('[object Object]', 'utf8')
    console.log(JSON.stringify(b))
    // {"type":"Buffer","data":[91,111,98,106,101,99,116,32,79,98,106,101,99,116,93]}
    
    console.log(b.toString('utf8'))
    // [Object object]
    

    您需要弄清楚的问题是为什么要发送带有该字符串的缓冲区。似乎缓冲区的发送者需要在发送对象之前调用stringify 或以其他方式序列化对象。然后你可以用toString()把它转回字符串,并在字符串上使用JSON.parse()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-29
      • 1970-01-01
      • 1970-01-01
      • 2016-07-29
      • 1970-01-01
      • 2016-09-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多