对方告知我是 UUID 的字段转了码的,ASCII 码+十六进制。
但是对转码一点都不懂,怎么转都解不出来,要么乱码 要么还是解不出
头都解大了,求帮忙。感谢大家了
\x00\x00\x01[\xA7\x92O\xD9\x94#\x11\xE0\xCE-x\xE6
1
xiri 2020-04-24 12:06:16 +08:00
你这个有问题吧,16 进制哪来的“O”、“#”、“-x”
|
4
also24 2020-04-24 13:04:42 +08:00
这段文本应该不是你收到的原始内容吧,
你通过什么方式转码或打印出来的? |
7
binux 2020-04-24 13:43:31 +08:00 2
>>> import uuid
>>> uuid.UUID(bytes=b'\x00\x00\x01[\xA7\x92O\xD9\x94#\x11\xE0\xCE-x\xE6') UUID('0000015b-a792-4fd9-9423-11e0ce2d78e6') |
8
rapperx2 OP @binux UUID('0000015b-a792-4fd9-9423-11e0ce2d78e6') 这段是解出来的值吗?
|
9
rapperx2 OP @also24 对方是做过转码处理的,但是他告诉我,就是转了一遍 ASCII 码,实际上就是 16 进制。 这段数据就是从 hbase 取的
|
10
sujin190 2020-04-24 14:18:00 +08:00
这不就是二进制字符串直接输出么?\x 打头后面两个数字的是不可见字符以 16 进制输出,O 这样的是可见字符,则是直接原始字符输出,没啥编码吧
|
12
ipwx 2020-04-24 14:31:30 +08:00
楼主真逗。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 |