2016-10-31 2 views
0

は私がUTF8としてデコードしたい次の文字列があるとし、外部のutf8文字列をデコードします:python 3を使用してのpython3

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

を、私は仕事に次を期待するだろうが、それはしません。

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です。 2番目の文字はエスケープシーケンスを対応する文字に変換します。 3番目のコードは、ISO-8859-1に準拠したUnicodeを利用して、最初の256コードポイントで文字を直接バイトに変換します。最後に、UTF-8文字列をデコードできます。