对方告知我是 UUID 的字段转了码的,ASCII 码+十六进制。
但是对转码一点都不懂,怎么转都解不出来,要么乱码 要么还是解不出
头都解大了,求帮忙。感谢大家了
\x00\x00\x01[\xA7\x92O\xD9\x94#\x11\xE0\xCE-x\xE6
1
xiri 2020 年 4 月 24 日
你这个有问题吧,16 进制哪来的“O”、“#”、“-x”
|
4
also24 2020 年 4 月 24 日
这段文本应该不是你收到的原始内容吧,
你通过什么方式转码或打印出来的? |
7
binux 2020 年 4 月 24 日 >>> import uuid
>>> uuid.UUID(bytes=b'\x00\x00\x01[\xA7\x92O\xD9\x94#\x11\xE0\xCE-x\xE6') UUID('0000015b-a792-4fd9-9423-11e0ce2d78e6') |
9
rapperx2 OP @also24 对方是做过转码处理的,但是他告诉我,就是转了一遍 ASCII 码,实际上就是 16 进制。 这段数据就是从 hbase 取的
|
10
sujin190 2020 年 4 月 24 日
这不就是二进制字符串直接输出么?\x 打头后面两个数字的是不可见字符以 16 进制输出,O 这样的是可见字符,则是直接原始字符输出,没啥编码吧
|
12
ipwx 2020 年 4 月 24 日
楼主真逗。UUID 是 32 位 hex,不就是 16 个字节的二进制内容么。你用 uuid 拿到一个 UUID 对象而已,它的值就是上面这个。这不算转码,这叫存储了一个 UUID 对象,然后你反序列化了而已。。。
In [6]: for b in b'\x00\x00\x01[\xA7\x92O\xD9\x94#\x11\xE0\xCE-x\xE6': ...: print('{:02x}'.format(int(b))) ...: 00 00 01 5b a7 92 4f d9 94 23 11 e0 ce 2d 78 e6 |