2011-11-30 70 views
1

我在Windows中工作。 Python 2.7.2 我有一個模塊,在這個模塊中我必須用gettext翻譯幾條消息。 所以我創建UTF-8沒有BOM * .po文件,使*的.mo了出來,並用這樣的代碼:Python gettext:將Unicode文字轉換爲文本

t = gettext.translation('index','./locale', languages=['ru']) 
_= t.ugettext 
t.install() 

因此,我有這樣的事情:

(u'\u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430') 

如何將其轉換爲常見的UTF-8文本?

+0

你在哪裏試圖顯示此文本? –

+0

通過打印在控制檯中。如果我將它顯示到網頁模板中,一切都很順利。 – AlexNasonov

+0

對於最簡單的用法,使用'print'函數將輸出相關編碼中的文本。所以'print u'\ u0441 \ u0438 \ u0441 \ u0442 \ u0435 \ u043c \ u043d \ u0430 \ u044f \ u043e \ u0448 \ u0438 \ u0431 \ u043a \ u0430''會給出一個可讀的輸出。 – FallenAngel

回答

1

如何將它轉換爲常見的UTF-8文本?

這是錯誤的問題。 :)它已經是UTF-8文本...你試圖理解的是如何將它顯示爲字母字符。在任何使用字符串作爲視覺輸出的東西中,這應該是自動的最簡單的情況下,print函數(或聲明)。

>>> print u'\u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430' 
системная ошибка