ASCII 字符范围是从 0 到 127,在该范围内,awk 的带有 %c 格式说明符的 printf 输出一个字节的数据:
$ awk 'BEGIN{printf "%c", 97}'
a
$ awk 'BEGIN{printf "%c", 127}' | xxd
00000000: 7f
$ awk 'BEGIN{printf "%c", 127}' | xxd -b
00000000: 01111111
Run Code Online (Sandbox Code Playgroud)
但对于大于 127 的值,它将打印出多个字节:
$ awk 'BEGIN{printf "%c", 128}' | xxd
00000000: c280
$ awk 'BEGIN{printf "%c", 128}' | xxd -b
00000000: 11000010 10000000
Run Code Online (Sandbox Code Playgroud)
0xc280 的意义是什么?为什么 awk 输出该字符而不是 0x80?