当我在04x hex中转换一个字符串时,它将是这样的,
"".join("{:04x}".format(ord(c)) for c in "USERDOMAIN")
==> 00550053004500520044004f004d00410049004e
但是我需要小端格式吗?在这个例子中
==> 550053004500520044004f004d00410049004e00
如何在python中计算这个值(我的意思是USERDOMAIN 04x hex的小端格式)?
答案 0 :(得分:1)
如果您尝试编码为UTF16字节,请执行以下操作:
u'USERDOMAIN'.encode('utf-16-le')
编码为UTF-16,小端,没有字节顺序标记:
>>> u'USERDOMAIN'.encode('utf-16-le')
'U\x00S\x00E\x00R\x00D\x00O\x00M\x00A\x00I\x00N\x00'
>>> u'USERDOMAIN'.encode('utf-16-le').encode('hex')
'550053004500520044004f004d00410049004e00'
请注意,我通过在字符串定义前添加u
前缀来创建 Unicode文字。如果您有来自其他源的字节串,则必须首先解码为Unicode,除非该数据仅为ASCII。