【发布时间】:2018-01-13 12:54:34
【问题描述】:
假设我有一个 0xb7 字节编码为 UTF 代码点的 JSON:
{"key":"_\u00b7_"}
如果我用 jq 提取“key”的值,它会保留这个字节的 utf8 编码,即“c2 b7”:
$ echo '{"key":"_\u00b7_"}' | ./jq '.key' -r | xxd
0000000: 5fc2 b75f 0a _.._.
是否有任何 jq 命令可以从这个 JSON 中提取解码后的“5f b7 5f”字节序列?
我可以使用 iconv 之类的额外工具来解决这个问题,但它有点难看:
$ echo '{"key":"_\u00b7_"}' | ./jq '.key' -r \
| iconv -f utf8 -t utf32le \
| xxd -ps | sed -e 's/000000//g' | xxd -ps -r \
| xxd
0000000: 5fb7 5f0a _._.
【问题讨论】: