我有一个字节列表(8位字节,或者用C / C ++语言,它们形成wchar_t类型字符串),它们形成UNICODE字符串(逐字节),如何将这些值转换成Python字符串,尝试了一些尝试,但没有人可以将这2个字节合并为1个字符并以此为基础构建整个字符串。谢谢。
通过调用该对象(在Python 2.x中)或(Python 3.x)中的decode()
方法,可以将字节序列转换为Unicode字符串。str
bytes
如果实际上有一个字节列表,则可以使用''.join(bytelist)
或来获取此对象b''.join(bytelist)
。
您需要指定用于编码原始Unicode字符串的编码。
但是,术语“ Python字符串”有点模棱两可,并且也与版本有关。Pythonstr
类型在Python 2.x中代表字节字符串,在Python 3.x中代表Unicode字符串。因此,在Python 2中,只需执行即可''.join(bytelist)
为您提供一个str
对象。
Python 2演示:
In [1]: 'тест'
Out[1]: '\xd1\x82\xd0\xb5\xd1\x81\xd1\x82'
In [2]: bytelist = ['\xd1', '\x82', '\xd0', '\xb5', '\xd1', '\x81', '\xd1', '\x82']
In [3]: ''.join(bytelist).decode('utf-8')
Out[3]: u'\u0442\u0435\u0441\u0442'
In [4]: print ''.join(bytelist).decode('utf-8') # encodes to the terminal encoding
тест
In [5]: ''.join(bytelist) == 'тест'
Out[5]: True
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句