2013-04-25 18 views
5

quando cerco di convertire unicode:Converti unicode simboli cirillici a stringa in pitone

a = u"Тест" 

a stringa:

str(a) 

ho ottenuto questo errore:

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

ho bisogno str (a) per darmi l'output:

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

Dai un'occhiata a questo link: http://stackoverflow.com/questions/2365411/python-convert-unicode-to-ascii-without-errors –

+0

Ho osservato questo tag per alcune settimane e vedo questa domanda quasi ogni giorno. Hai persino provato a cercare questo errore prima di pubblicare? Qui, [oltre 500 risultati] (http://stackoverflow.com/search?q=%22%27ascii%27+codec+can%27t+encode%22). –

+0

Sì, l'ho fatto e nessuno gestisce il mio caso. – UnLiMiTeD

risposta

4

Scegli una codifica in grado di codificare i simboli cirillici, come UTF-8:

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

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

tabella ASCII non ha punti di codice per i caratteri cirillici, quindi è necessario specificare una codifica in modo esplicito.

Ma se tutto quello che vuoi è solo stampare la stringa, allora quello che ti interessa è la codifica del tuo terminale e il font di sistema.

+0

Ho ottenuto questo, ma ho bisogno di mostrarli nella stringa codificata come stringa 'Test'. – UnLiMiTeD

+1

@UnLiMiTeD Una ricerca per "python transliterate cirillico" fornisce [questo] (http://stackoverflow.com/a/14173535/1258041) tra le altre cose, se è quello che ti serve. –