2013-04-25 12 views
5

gdy próbuję przekonwertować Unicode:Konwersja Unicode cyrylicy symbole na ciąg w Pythonie

a = u"Тест" 

Aby wyrażenie:

str(a) 

mam ten błąd:

'ascii' codec can't encode characters in position 0-3: ordinal not in range(128) 

muszę str (a) w celu uzyskania mocy wyjściowej:

>> str(a) 
>> 'Тест' 
+0

Sprawdź ten link: http://stackoverflow.com/questions/2365411/python-convert-unicode-to-ascii-without-errors –

+0

Oglądałem ten tag przez kilka tygodni i widzę to pytanie prawie codziennie. Czy próbowałeś nawet wyszukać ten błąd przed opublikowaniem? Tutaj [ponad 500 wyników] (http://stackoverflow.com/search?q=%22%27ascii%27+codec+can%27t+encode%22). –

+0

Tak, zrobiłem i nikt nie zajmuje się moją sprawą. – UnLiMiTeD

Odpowiedz

4

Wybierz kodowanie, które mogą kodować symboli cyrylicy, takie jak UTF-8:

>>> a = u'Тест' 

>>> a.encode('utf-8') 
'\xd0\xa2\xd0\xb5\xd1\x81\xd1\x82' 

ASCII tabela nie ma punktów kodowych dla cyrylicą, więc trzeba określić kodowanie w sposób jawny.

Ale jeśli chcesz tylko wydrukować ciąg znaków, to powinieneś zadbać o kodowanie terminala i czcionkę systemową.

+0

Mam to, ale muszę pokazać je w łańcuchu zakodowanym jak ciąg "Test". – UnLiMiTeD

+1

@UnLiMiTeD Poszukiwanie "python transliterate cyrillic" daje [to] (http://stackoverflow.com/a/14173535/1258041) między innymi, jeśli tego właśnie potrzebujesz. –