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!