【问题标题】:ascii decimal to character using jq使用 jq 的 ascii 十进制到字符
【发布时间】:2016-01-02 00:22:20
【问题描述】:

读取 JSON 字段的十进制值并将其转换为 ASCII 字符的最佳方法是什么?例如,将 107 转换为“k”。该手册似乎没有提到这样做的直接方法。

【问题讨论】:

  • 我对 JSON 不是很熟悉,但这是 reinterpret cast 的经典用法。基本上,您将数据存储为一个字节,然后将其重新解释为一个字符,因为二进制中的 107 是 k。在 c 中它看起来像这样 char c = *((char *)&((byte)(107))); 这里我将指针指向 107 存储在内存中的位置,将指针重新解释为字符指针,然后取消引用。

标签: ascii data-conversion jq


【解决方案1】:
$ jq -n '[107] | implode'
"k"

implode 适用于 ASCII 和非 ASCII 十进制代码。如此处所示,它将一个可接受的小数数组转换为等效的 UTF-8 字符串。

这是一个显示转换的示例:

$ jq -n -c '{"a": [107, 108]} | .a |= implode'
{"a":"kl"}

【讨论】:

  • 谢谢!我可能在文档中错过了这一点,因为我正在搜索“ascii”。
猜你喜欢
  • 2014-01-02
  • 1970-01-01
  • 2017-05-03
  • 2015-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-17
  • 1970-01-01
相关资源
最近更新 更多