将十六进制数字符串写入UTF16 Fi

2024-06-28 19:22:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含十六进制数字的长字符串,它表示UTF-16LE字符。示例:“59006500730020007300690072002100”

我需要把这个字符串变成一个UTF-16LE文件。(你知道的,如果你用MS记事本打开的话,那就是一团乱七八糟的东西)字符串本身不需要任何转换,它已经包含了原始的十六进制数据,当你用十六进制编辑器打开一个UTF-16LE文件时,你会看到这些数据。在

我尝试过各种方法,但是我不能让Python将字符串变成UTF-16LE文件。我最初是用Java编写代码的,而DatatypeConverter.parseHexBinary(hex_string)就完成了这个任务。在

有什么想法在Python中实现这一点吗?在


Tags: 文件数据方法字符串代码示例数字java
2条回答

UTF-16le根本不涉及这个问题,您需要的只是将成对的十六进制数字转换成相应的字节。你可以很容易地做到这一点与一个班轮:

''.join(chr(int(chs[0]+chs[1], 16)) for chs in zip(s[::2], s[1::2]))

(其中s是您的字符串)

将其解码为字节,然后以二进制形式写入文件。在

with open('text.txt', 'wb') as fp:
  fp.write(binascii.unhexlify('59006500730020007300690072002100'))

相关问题 更多 >