2016-07-03 11 views
5

Ciao ragazzi spero che mi può aiutare con questo problema, ho hanno ore a cercare di risolverloConvertire le parole con la stringa superiore() non funziona con certe lettere?

utilizzando questo codice:

#!/usr/bin/python 
# -*- encoding: utf-8 -*- 

frase = 'La canción de la piña' 
print frase.upper() 

ottengo solo "la cancion de La Pina", il il problema è che non fa il "ñ" in a "Ñ" o "ó" in "Ó"

Qualche idea?

+4

funziona come un sogno in 'python3', in' python2' è necessario effettuare le stringhe Unicode ('u '')' esplicitamente. – grochmal

risposta

6

Usa unicode letterale (stringa letterale con i principali u) per rappresentare stringhe Unicode:

>>> frase = u'La canción de la piña' 
>>> print frase.upper() 
LA CANCIÓN DE LA PIÑA 

UPDATE

Aggiunta seguente riga all'inizio del file abilita letterali automatici unicode. (In shell interattiva, le dichiarazioni seguono le istruzioni di importazione saranno interessati.)

from __future__ import unicode_literals 

Vedi __future__ - future statement definitions.

+1

'da __future__ import unicode_literals' può abilitare i valori letterali Unicode per impostazione predefinita. – jfs

+0

@ J.F.Sebastian, grazie per l'informazione. Ho aggiornato la risposta di conseguenza. – falsetru

0

Unicode letterale:

Prova questo:

frase = u'La canción de La Pina'

Problemi correlati