toolfree

十六进位转文字

在浏览器里把十六进位字节转成文字并转回来,字元编码由你选择,而不是由工具猜。

在你的浏览器中运行

同样的字节在不同编码下是不同的文字,所以这是一个选择,不是细节。

结果

还没有东西可以转换。

在你说明怎么读之前,字节还不是文字

这是大多数转换器因为「没说」而做错的事:它们把十六进位转成文字,却不告诉你用的是哪一种 编码。对 ASCII 来说没差,对其他所有东西来说就是乱码。

字节 E5 8F B0 在 UTF-8 下是 。当成 Latin-1 读则是三个各自独立的字元,其中一个 还是看不见的控制码。两种读法都合法,但只有一种是你要的。

所以编码在这里是一个看得见的选项,默认 UTF-8:

不合法的输入会被回报,而不是被糊过去

不是合法 UTF-8 的字节会产生一个指出问题的错误消息,而不是一串 “ 替代字元。

这一点很重要,因为替代字元看起来像数据。在输出里看到它,大家很合理地会以为原始数据里 本来就有,然后往完全错误的方向去找。而「这些字节不是合法的 UTF-8,试试 Latin-1」直接 指向真正的答案。

十六进位数字是奇数个时也会被拒绝。半个字节不是字节,而要猜该补在前面还是后面,是产生 自信错误输出的好方法。

字节数和字元数是两个不同的数字

两个都会显示,而这个差别通常正是有人来到这一页的原因。

台北 在 UTF-8 下是2 个字元、6 个字节。一个 VARCHAR(10) 的数据库栏位可能指的是 其中任何一种,而是哪一种决定了这段文字放不放得下。Emoji 更夸张:👨‍👩‍👧 是 5 个码位、 25 个字节。

可以贴什么进来

48 65 6c 6c 6f48656c6c6f48:65:6C:6C:6F0x48, 0x6548-65-6c-6c-6f 都会 被以同样的方式读取。分隔符号一律忽略,大小写也没差。

没有任何上传

在这个页面里转换。正在被检视的十六进位倾印,往往是某个私密东西的片段。