我从Python 3的Windows注册表(SAM)中读取了一些值。据我所知,它看起来像十六进制编码的字节:
>>> b = b'A\x00d\x00m\x00i\x00n\x00i\x00s\x00t\x00r\x00a\x00t\x00o\x00r\x00'
>>> print(b)
A d m i n i s t r a t o r
现在如何将其转换为字符串(应为“管理员”)?使用“打印”只会给我“ ADMINI STRATR”。如何在不使用肮脏技巧的情况下正确进行转换?
答案 0 :(得分:1)
b = b'A\x00d\x00m\x00i\x00n\x00i\x00s\x00t\x00r\x00a\x00t\x00o\x00r\x00'
b = b.replace(b'\x00', b'')
print(b)
# b'Administrator'
答案 1 :(得分:0)
我应该使用utf-16解码:
>>> b = b'A\x00d\x00m\x00i\x00n\x00i\x00s\x00t\x00r\x00a\x00t\x00o\x00r\x00'
>>> print(b.decode('utf-16'))
Administrator
抱歉!