首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >od输出令人困惑

od输出令人困惑
EN

DevOps用户
提问于 2020-10-30 14:17:52
回答 2查看 41关注 0票数 1

这不是一个与部署有关的问题,但我认为它属于这里。

我昨天发现了od工具,并开始摆弄它。

问题是关于utf-8编码。见以下例子:

代码语言:javascript
复制
~ $ 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文件中读取数据,结果是一样的。

提前谢谢。

EN

回答 2

DevOps用户

回答已采纳

发布于 2020-10-31 03:04:26

解决问题:

这是因为对产出的肯定。

在默认情况下,有一个选项--endianlittle

示例字符串是,它转换为63 C3 A1 utf-8编码:

代码语言:javascript
复制
~ $ echo -n cá | od --endian=big -x
0000000 63c3 a100
0000003

( -n在字符串末尾防止\n,使最后一个字节为00)

因此,它是完全相同的输出,但字节倒置:

代码语言:javascript
复制
~ $ echo -n cá | od --endian=little -x
0000000 c363 00a1
0000003

(c363而不是63c3等等)。

票数 1
EN

DevOps用户

发布于 2020-11-01 16:09:07

由于恩典和其他原因,我一直在使用这两个化名。重要的是-t x1

代码语言:javascript
复制
alias od1='od -Ax -t x1'
alias od2='od -Ax -t x1 -c'
票数 1
EN
页面原文内容由DevOps提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://devops.stackexchange.com/questions/12668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档