【问题标题】:HEX-edit UTF-8 file十六进制编辑 UTF-8 文件
【发布时间】:2012-05-10 18:08:13
【问题描述】:

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

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

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

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

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

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

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

【问题讨论】:

  • 另一个 Hex-Editor -NEXT-Soft Hex-Editor- 似乎可以工作。 NP++ 将文档正确识别为 UTF-8 w/o BOM。 12monkeys.dyndns.org/media/2012-05-01_file_by_hexeditor2.jpg
  • N++ 在打开文件时无法猜测编码,因此以 ANSI(latin1) 打开。你可以告诉他编码是什么,然后它会正确解释字符。
  • NP++ 显然可以做到这一点。刚刚使用 Hex-Editor 创建了一个新文件,NP++ 选择了 UTF-8 wo BOM。嗯,该睡觉了:)

标签: encoding utf-8 hex character cp1252


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-06
    • 2014-08-07
    • 2015-12-06
    • 2016-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-10
    相关资源
    最近更新 更多