此命令按预期工作
$ awk 'BEGIN {printf "%c", 0x7f}' | od -tx1
0000000 7f
0000001
但是对于所有字符>= 0x80
,awk正在输出2字节字符
$ awk 'BEGIN {printf "%c", 0x80}' | od -tx1
0000000 c2 80
0000002
如何使用该设置强制使用单字节字符?
答案 0 :(得分:2)
关闭您正在使用的任何UTF-8语言环境:
$ LC_CTYPE=C awk 'BEGIN {printf "%c", 0x80}' | hd
00000000 80 |.|
00000001
答案 1 :(得分:1)
$ awk --characters-as-bytes 'BEGIN {printf "%c", 0x80}' | od -tx1
0000000 80
0000001