1

我正在尝试使用 HEX 编辑器创建一个 UTF-8/no-BOM 文件。我想要的 UTF 字符是e2 82 aeUTF-8 格式的 TUGRIK SIGN。

我用 N++ 创建了一个UTF-8/no BOM 文件,复制了 N++ 中的字符并保存了文件。瞧,在 HEX 编辑器中看起来不错,太棒了e2 82 ae

所以我尝试了另一种方式,将 3 个字节保存e2 82 ae到带有 wxHexEdtior 的文件中。废话,N++ 出于某种原因认为该文件是ANSI(Latin1)编码的。

我完全不明白。会不会和windows -CP1252-编码有冲突?

另一个有趣的事情(我也完全不明白)是 wxHexEditor 显示了一些文件的反汇编。

N++ 创建文件的反汇编对 wxHexEditor 是可以的,但是 wxHexEditor 创建的文件反汇编无效。

如果有人能向我解释这种黑魔法,我会非常高兴。

图 1

图 2

4

1 回答 1

2

该文件本身不包含编码信息,因此您的编辑器必须猜测编码或仅以某种默认编码显示它,Latin1 是一个常见的默认值。在我的 N++ (6.1.2) 版本中,它打开并正确显示为 UTF-8。

如果您的版本没有猜对,那么也许当您在 N++ 中创建文件时,您提前告诉 N++ 您将要创建一个没有 BOM 的 UTF-8 文件,这就是它当时知道正确显示它的方式.

关于汇编器...首先,这不是汇编器“链接到”或“关联”文件的情况,而是您的 hexeditor 只是试图反汇编您提供的任何文件。

汇编器不同的原因是在“好”文件中您碰巧选择了第一个字节(或没有),因此 wxHexEditor 反汇编整个文件。在“坏”版本中,您可能选择了第二个字节,而这 82 ae 不会反汇编为任何有效代码。

于 2012-05-01T07:03:18.637 回答