[Python] carattere aptang: ø

Messaggioda Jack87 » 22/02/2017, 16:45

Ciao!

Ho un file di testo con diversi carattere speciali. Tra tutti l'unico carattere che mi crea problemi è la aptang (ossia l'o barrata):
http://www.fileformat.info/info/unicode/char/00F8/index.htm
https://it.wikipedia.org/wiki/%C3%98

Se ad esempio aggiungo ad un modulo l'istruzione:
Codice:
# mymodule.py
print(u'smørbrød'.encode('utf_8').decode('utf_8'))

ed importo tale modulo dall'interprete, ottengo il seguente errore:
Codice:
>>> import mymodule
...
  File "...\mymodule.py", line 1, in <module>
    print(u'sm\xf8rbr\xf8d'.encode('utf_8').decode('utf_8'))
  File "...\Python\Python35-32\lib\encodings\cp437.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\xf8' in position 2: character maps to <undefined>

Immagino ciò sia dovuto al fatto che, come si intuisce dal traceback, il codec dello stdout sia cp437.

Mentre se eseguo la stessa istruzione direttamente dal'interprete ottengo:
Codice:
>>> print('smørbrød'.encode('utf_8').decode('utf_8'))
smorbrod

cioè le aptang vengono convertite in o normali.

Come posso risolvere? Grazie mille!
Jack87
Junior Member
Junior Member
 
Messaggio: 98 di 169
Iscritto il: 04/06/2009, 15:14

Re: [Python] carattere aptang: ø

Messaggioda zariski » 27/02/2017, 20:02

Ho provato a eseguire entrambe le tue linee di codice (sia direttamente nel prompt che sotto forma di modulo) e non ho riscontrato errori. Comunque se usi Python 3 (dal traceback vedo che lo stai usando) non dovresti avere questo tipo di problemi, mi pare che le stringhe vengano gestite automaticamente con utf-8. Comunque non mi è nemmeno chiaro quale sia il tuo problema, cosa cerchi di ottenere?
Se vuoi semplicemente sostituire l'aptang con una "o" basta
Codice:
'smørbrød'.replace('ø', 'o')


Spero di non aver detto cavolate, sono un po' arrugginito con Python.
zariski
Junior Member
Junior Member
 
Messaggio: 33 di 232
Iscritto il: 24/11/2016, 22:31


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite