2016-11-17 58 views
-1

如何將非ASCII字符串的unicode表示形式轉換爲python字符串?如何將non-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 

如何得到這種表示( '\ u0623 \ u0646 \ u0633 \ u0646 \ u0629')作爲一個Python字符串?如下所示。

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

我想從decoded_strstr_rep降落。我怎麼能這樣做呢?

+0

哪個Python版本? – danielfranca

+0

我建議你嘗試python3.x來解決python2.x的這類問題(編碼/解碼) – Wonka

+1

不要使用'str'作爲變量名。 – user2728397

回答

1

decoded_str.encode("unicode-escape")產生期望的輸出。

0

您是否嘗試打印變量decode_str?

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

print(foo) 

أنسنة 

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

我想打印unicode表示本身就是一個字符串。不是以阿拉伯語編碼的輸出。我想要打印的字符串是'\ u0623 \ u0646 \ u0633 \ u0646 \ u0629' – NightFury13

+1

噢好的,試試:print(repr(foo)) – Wonka

+0

這也行!非常感謝! :D @jasonharper的答案也有效。 – NightFury13

相關問題