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

Write String of Hexadecimal Numbers to UTF-16 File

我有一个很长的字符串,其中包含表示 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 是您的字符串)