2016-11-17 22 views
-1

ASCII以外の文字列のUnicode表現をPython文字列に変換するにはどうすればよいですか?非ASCII文字列のUnicode表現をそのままPython文字列に変換するには?

> str = '<some-arabic-content>' 
> decoded_str = str.decode('utf-8') 
> decoded_str 
u'\u0623\u0646\u0633\u0646\u0629' 
> str(decoded_str) 
<WILL-THROW-AN-ERROR-OFC> since ascii cannot encode the unicode string 

は、どのように私はPythonの文字列として( '\ u0623 \ u0646 \ u0633 \ u0646 \ u0629')、この表現を得るのですか?下のような

> str_rep = '\u0623\u0646\u0633\u0646\u0629' 

私はdecoded_strからstr_repに着陸したいと思います。これをやり遂げるにはどうすればいいですか?

+0

どのPythonのバージョンですか? – danielfranca

+0

python2.xのこの種の問題(エンコード/デコード)を解決するpython3.xをお勧めします。 – Wonka

+1

変数名として 'str'を使用しないでください。 – user2728397

答えて

1

decoded_str.encode("unicode-escape")が望ましい出力を生成します。

0

変数をデコードしようとしましたか?

foo = u'\u0623\u0646\u0633\u0646\u0629' 

print(foo) 

أنسنة 

print(repr(foo)) 
u'\u0623\u0646\u0633\u0646\u0629' 
+0

ユニコード表現をプリントしたいそれ自体は文字列として扱われます。アラビア語のコード化された出力ではありません。私は印刷された文字列を '\ u0623 \ u0646 \ u0633 \ u0646 \ u0629' – NightFury13

+1

にしておきます。試してみてください:print(repr(foo)) – Wonka

+0

これも機能します!どうもありがとう! :D @jasonharperの答えもうまくいきます。 – NightFury13

関連する問題