使用 hexdump 以及如何查找关联字符?
Using hexdump and how to find associated character?
我在数据文件上执行 hexdump 并打印出以下内容:
> hexdump myFile.data
a4c3
切换字节顺序后我有以下内容:
c3a4
我是否假设这些 HEX 值是实际的 Unicode 值?
如果是,则值为:
和
或者我是否将 c3a4 视为 UTF-8 数据(因为我的 Putty 会话设置为 UTF-8)然后将其转换为 Unicode?
如果是,则结果为 E4,然后是
正确的解释是什么?
您不能假设这些十六进制值是 Unicode 值。事实上,hexdump
永远不会(嗯,见下文...)给你 Unicode 值。
这些十六进制值表示创建文件时写入磁盘的二进制数据。但是为了将该数据转换回任何特定的 characters/symbols/glyphs,您需要知道创建文件时使用的特定字符编码(ASCII、UTF-8 等)。
此外,我建议使用 hexdump
和 -C
选项(即大写 C)来给出十六进制数据的所谓“规范”表示:
c3 a4 0a
在我的例子中,还有一个 0a
表示换行符。
因此,在上面的示例中,我们有 0xc3
后跟 0xa4
(我添加了 0x
部分以表明我们正在处理十六进制值)。我碰巧知道这个文件在创建时使用的是UTF-8。因此,我可以确定文件中的字符是 ä
(也称为 Unicode U+00e4)。
但关键是:你必须知道文件是如何编码的,才能确定如何解释hexdump
提供的字节。
Unicode 是(除其他外)字符的抽象编号系统,与任何特定编码分开。这就是它如此有用的原因之一。但碰巧它的设计者对初始字符集使用了与 ASCII 相同的编码。这就是为什么 ASCII 字母 a
与 Unicode a
具有相同的代码值。正如您在 Unicode 与 UTF-8 中看到的那样,一旦超出初始 ASCII 代码范围,编码就不一样了。
我在数据文件上执行 hexdump 并打印出以下内容:
> hexdump myFile.data
a4c3
切换字节顺序后我有以下内容:
c3a4
我是否假设这些 HEX 值是实际的 Unicode 值? 如果是,则值为:
和
或者我是否将 c3a4 视为 UTF-8 数据(因为我的 Putty 会话设置为 UTF-8)然后将其转换为 Unicode?
如果是,则结果为 E4,然后是
正确的解释是什么?
您不能假设这些十六进制值是 Unicode 值。事实上,hexdump
永远不会(嗯,见下文...)给你 Unicode 值。
这些十六进制值表示创建文件时写入磁盘的二进制数据。但是为了将该数据转换回任何特定的 characters/symbols/glyphs,您需要知道创建文件时使用的特定字符编码(ASCII、UTF-8 等)。
此外,我建议使用 hexdump
和 -C
选项(即大写 C)来给出十六进制数据的所谓“规范”表示:
c3 a4 0a
在我的例子中,还有一个 0a
表示换行符。
因此,在上面的示例中,我们有 0xc3
后跟 0xa4
(我添加了 0x
部分以表明我们正在处理十六进制值)。我碰巧知道这个文件在创建时使用的是UTF-8。因此,我可以确定文件中的字符是 ä
(也称为 Unicode U+00e4)。
但关键是:你必须知道文件是如何编码的,才能确定如何解释hexdump
提供的字节。
Unicode 是(除其他外)字符的抽象编号系统,与任何特定编码分开。这就是它如此有用的原因之一。但碰巧它的设计者对初始字符集使用了与 ASCII 相同的编码。这就是为什么 ASCII 字母 a
与 Unicode a
具有相同的代码值。正如您在 Unicode 与 UTF-8 中看到的那样,一旦超出初始 ASCII 代码范围,编码就不一样了。