将十六进制数字字符串写入 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
是您的字符串)
我有一个很长的字符串,其中包含表示 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
是您的字符串)