这不是一个与部署有关的问题,但我认为它属于这里。
我昨天发现了od工具,并开始摆弄它。
问题是关于utf-8编码。见以下例子:
~ $ echo -n á | od -x
0000000 a1c3
0000002
~ $ echo -n áá | od -x
0000000 a1c3 a1c3
0000004
~ $ echo -n ác | od -x
0000000 a1c3 0063
0000003
# This is the issue
~ $ echo -n cá | od -x
0000000 c363 00a1
0000003因此,除了最后一个测试外,á在每个测试中都正确地转换为c3 a1,该测试以ascii字符开始。为什么最后一次测试0063 a1c3的输出不是(即倒置前的测试)?
我试着从utf-8文件中读取数据,结果是一样的。
提前谢谢。
发布于 2020-10-31 03:04:26
解决问题:
这是因为对产出的肯定。
在默认情况下,有一个选项--endian是little。
示例字符串是cá,它转换为63 C3 A1 utf-8编码:
~ $ echo -n cá | od --endian=big -x
0000000 63c3 a100
0000003( -n在字符串末尾防止\n,使最后一个字节为00)
因此,它是完全相同的输出,但字节倒置:
~ $ echo -n cá | od --endian=little -x
0000000 c363 00a1
0000003(c363而不是63c3等等)。
发布于 2020-11-01 16:09:07
由于恩典和其他原因,我一直在使用这两个化名。重要的是-t x1
alias od1='od -Ax -t x1'
alias od2='od -Ax -t x1 -c'https://devops.stackexchange.com/questions/12668
复制相似问题