我有一个用C编写的程序,它将创建WCHAR(UTF-16)并将其发送到python脚本。它将收到为:
'63006400630064006300640063006400'
我想将其打印为:
cdcdcdcd
答案 0 :(得分:0)
基本上,这里您要先将base-16编码的字节字符串解码为字节字符串,然后再从UTF-16 LE对其进行解码。
幸运的是,所有这些东西已经由标准库提供了,因此这本质上是一个单行代码:
def decode_base16_UTF16(s):
import base64
return base64.b16decode(s, True).decode('UTF-16LE')
答案 1 :(得分:0)
我不能保证这样做的性能,但是您可以像这样从十六进制字符串中获取字节对象:
data = bytes.fromhex("63006400630064006300640063006400")
您可以从那里像往常一样对其进行解码:
my_string = data.decode("utf-16le")
以下是fromhex的参考:https://docs.python.org/3/library/stdtypes.html#bytes.fromhex(实际上有许多基本数据类型的fromhex类方法)。