我有一个长字符串,其中包含十六进制数字,这些数字是 UTF-16LE 字符的表示形式。示例:"59006500730020007300690072002100"
我需要将此字符串转换为 UTF-16LE 文件。(你知道,如果你用MS记事本打开它们,那些是一团糟)字符串本身不需要任何转换,它已经包含使用十六进制编辑器打开 UTF-16LE 文件时会看到的原始十六进制数据。
我已经尝试了各种方法,但我无法让 Python 将字符串制作成 UTF-16LE 文件。我最初是用Java编写代码的,DatatypeConverter.parseHexBinary(hex_string)
做到了。
任何想法如何在 Python 中做到这一点?
将其解码为字节,然后将其作为二进制写入文件。
with open('text.txt', 'wb') as fp:
fp.write(binascii.unhexlify('59006500730020007300690072002100'))
UTF-16 LE 根本不涉及此问题,您只需要将一对十六进制数字转换为相应的字节。您可以使用单行代码轻松完成此操作:
''.join(chr(int(chs[0]+chs[1], 16)) for chs in zip(s[::2], s[1::2]))
(其中s
是你的字符串)