2016-10-31 95 views
0

假設我有,我想作爲解碼UTF8以下字符串:python3解碼外部UTF8字符串

str ='\\u00d7\\u0090\\u00d7\\u0090\\u00d7\\u0090' 
# expect 'אאא' 

使用Python 3,我希望下面的工作,但它並不:

bytes(str, 'ascii').decode('unicode-escape') 
# prints '×××' 
bytes(str, 'ascii').decode('utf-8') 
# prints '\\u00d7\\u0090\\u00d7\\u0090\\u00d7\\u0090' 

任何幫助?

回答

1

你可以通過encode/decode多次旅行。

print(st.encode('ascii').decode('unicode-escape').encode('iso-8859-1').decode('utf-8')) 

第一個是the preferred alternate to bytes。第二個將轉義序列轉換爲其等效字符。第三個利用Unicode基於ISO-8859-1的前256個代碼點將這些字符直接轉換回字節。最後你可以解碼UTF-8字符串。