十六进制字节并不等同于 Unicode 码点
十六进制是显示字节的一种紧凑方式。两个十六进制数字代表一个字节,范围从 00 到 FF。普通的英文字母在 UTF-8 中通常占用一个字节,这使得简短的例子看起来像是逐个字符的替换。但这种捷径对人们实际书写的大部分文本都不再适用:带重音的字母可能占两个字节;一个表情符号可能占四个字节,或组成更长的序列。
码点 U+00E9 标识字符 é。它的 UTF-8 字节是 C3 A9,而不是 E9。因此,即使十六进制本身有效,把单个字节 E9 交给严格的 UTF-8 解码器也会报错。如果日志是用旧版编码生成的,请从源头确定该编码,而不要不断猜测,直到输出看起来合理为止。
本转换器在尝试字符解码之前,会先检查十六进制的语法。紧凑的串(例如 4869)可以被接受,完整的分组(例如 48 69、48:69 和 0x48,0x69)也可以。分组中数字个数为奇数时会被拒绝。地址列、转义的编程语言字符串,以及完整 hexdump 中可打印字符的侧栏,都不在此解析器的处理范围内;请只粘贴字节数据。
请把数值任务和文本任务分开。十六进制 FF 表示整数 255,但它并不是一个有效的独立 UTF-8 文本字节。请使用进制转换器来计算该数值,而当这些字节编码的是一条消息时,请使用本工具。成功解码的文本可以继续进入现有的文档工具。NULL 字符会保留在下载文件中,不过传递给文档工具时会被拒绝。