将十六进制数字字符串写入 UTF-16 文件



我有一个长字符串,其中包含十六进制数字,这些数字是 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是你的字符串)

最新更新