2012-07-12 32 views
1

這是一個很愚蠢的問題,我知道。當然,通常LANG = C表示一個不能顯示Unicode字符的ASCII終端 。但我仍然想打印出UTF-8字節。我使用Python 2(2.6.5實際上)如何在Python 2中打印Unicode時LANG = C

print '\xc3\xa4', u'\xe4' 

此打印一個Unicode終端上「A A」,但與LANG = C所執行的第二串將導致錯誤。我不想讓Python變聰明,只需將u'\ xe4'轉換爲UTF-8,這樣它就是內存中的'\ xc3 \ xa4'。

我嘗試了所有可以想象的decode(),encode()和unicode()的組合,但似乎我錯過了正確的組合。

什麼其實我是想通過VI的system()功能閱讀的Unicode charaters,像

:echo system('python foo.py') 

回答

2

爲了編碼unicode爲UTF-8,請撥打.encode('utf-8')就可以了:

>>> u'\xe4'.encode('utf-8') 
'\xc3\xa4' 
+0

嗯OK的作品在'LANG = C python foo.py'中,我可以發誓我試過那個。 – buergi 2012-07-13 08:07:46