使用jq
,我有一个字节数组,例如[0, 255, 128, 0, 127]
,我想将其转换为二进制文件。
几乎的工作方式如下:
jq --raw-output '. | implode' in.json > out.bin
但是不幸的是,它将输入解释为Unicode代码点,并将结果写为UTF-8字符串。是否有implode
的二进制版本?
答案 0 :(得分:1)
jq要么生成JSON,要么生成UTF-8(带有-r标志),但是您可以考虑使用iconv
或类似的字词,例如
$ jq -j --raw-output 'implode' <<< '[0, 255, 128, 40, 127]' | iconv -c -f utf-8 -t ISO-8859-16
输出显然无法在此处显示,因此请考虑:
$ jq -j --raw-output 'implode' <<< '[0, 255, 128, 40, 127]' | iconv -c -f utf-8 -t ISO-8859-16 | xxd -ps
00ff80287f
$ jq -j --raw-output 'implode' <<< '[0, 255, 128, 40, 127]' | xxd -ps
00c3bfc280287f
无论如何,请注意
首字母.|
是不必要的。