2013-10-30 37 views
0

我得到一個列表= [0x97,0x52],而不是unicode對象。這是一個字符「青」(u'\ u9752')的unicode。我怎樣才能將這個列表首先更改爲unicode對象,然後編碼爲'UTF-8'?如何將列表解碼爲'UTF-8'

回答

2
bytes = [0x97, 0x52] 

code = bytes[0] * 256 + bytes[1] # build the 16-bit code 
char = unichr(code)    # convert code to unicode 
utf8 = char.encode('utf-8')  # encode unicode as utf-8 
print utf8      # prints '青' 
+0

+1。或者,在一行上:'print unichr(bytes [0] * 256 + bytes [1])。encode('utf-8')' –

0

不知道這是否是最優雅的方式,但它適用於這個特定的例子。

>>> ''.join([chr(x) for x in [0x97, 0x52]]).decode('utf-16be') 
u'\u9752'