文字列を04xhexに変換すると、次のようになります。
"".join("{:04x}".format(ord(c)) for c in "USERDOMAIN")
==> 00550053004500520044004f004d00410049004e
ただし、リトルエンディアン形式で必要ですか?この例では
==> 550053004500520044004f004d00410049004e00
Pythonでこの値(つまり、USERDOMAIN 04x hexのリトルエンディアン形式)をどのように計算する必要がありますか?
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'
文字列定義の前に。を付けてUnicodeリテラルを作成したことに注意してくださいu
。別のソースからのバイト文字列がある場合、そのデータがASCIIのみでない限り、最初にUnicodeにデコードする必要があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加