Hex 解码
在下方粘贴十六进制字符串并点击解码将其转换为文本。所有处理均在浏览器中本地完成。
空格、冒号、逗号、连字符和 0x 前缀在解码前都会被去掉。
已复制!
什么是十六进制解码?
十六进制解码将十六进制字符串转换回其原始字节表示,然后转换为文本。输入中十六进制对之间可以包含空格、冒号或无分隔符。
每对十六进制字符(00–ff)表示一个字节。解码后的字节将被解释为UTF-8文本。
空格、冒号、逗号、分号、句点和连字符会在解码前被去掉,所以直接从指纹或 dump 里复制来的十六进制通常不必清理就能用。随后这些字节按 UTF-8 读取,不是有效 UTF-8 的会被报出来,而不是变成乱码。
正在排查一个死活解不开的问题?
解不开的数据包通常是症状而不是病根:链路上某处做了两次编码、字符集是被假定而不是被声明、令牌签名所覆盖的字节和大家以为的并不完全一致。这类活我们在做,围绕集成、API 以及在它们之间传递数据的系统。
说说哪里出了问题常见问题
我的十六进制字符串为什么解不开?
通常是位数为奇数,或者混进了非十六进制的字符。每个字节需要正好两位,所以位数为奇数说明有内容被截断,或者中途丢了一位。混进来的字符常常是把 1 打成了小写 l、把 0 打成了大写 O,或者复制那一行时把行尾也带了进来。
可以粘贴带空格、冒号或 0x 前缀的十六进制吗?
空格、冒号、逗号、分号、句点和连字符在解码前都会被去掉,所以直接从证书指纹、MAC 地址或 dump 里复制来的十六进制通常不必清理就能用。每个字节前的 0x 不会被去掉,如果你的来源带有它们,请先删掉。
如果解出来的字节不是文本怎么办?
这是正常情况,不是出错。十六进制只是把字节写下来的方式,而这些字节经常根本不是文本。本页按 UTF-8 解码,遇到不是有效 UTF-8 的情况会直说,而不是打印一堆替换字符让你自己琢磨。如果你本以为是文本却没拿到,可以查一下这些字节是不是被压缩或加密过。
怎么知道这些字节用的是哪种字符编码?
光看十六进制是不知道的。十六进制字符串本身不会记录它是由哪种编码产生的,那个信息存在于字节之外,在 HTTP 头、文件格式或协议规范里。本页面假定是 UTF-8,绝大多数情况下这个假定是对的;也正因如此,遇到非法序列时它会报成二进制数据,而不是悄悄变成一串乱码。若你已知这些字节属于别的编码,请用一个能指定编码的工具来解码。
十六进制解码是可逆的吗?
完全可逆。十六进制只是直接替换,每个字节两个字符,不丢也不添,所以编码再解码会原样得回最初的字节。不一定可逆的是它之后那一步:把字节还原成文本需要正确的编码,而在该编码下非法的字节序列压根就没有文本形态。