[Python] Supporto ai caratteri accentati.

Daniele Varrazzo piro a develer.com
Mer 8 Maggio 2013 18:49:29 CEST


On 2013-05-08 16:57, Gabriel Battaglia (Kriyaban) wrote:

> GB: attenzione, momento quasi storico... Tento la mia prima risposta
> in lista!

Rullo di tamburi... :)

> Prova a mettere una u davanti alla stringa da passare:
> u"Perchè così?"
> u"Perchè di sì!"

Questo è giusto, ma non basta. In che encoding è salvato il file? Se è 
in latin1 la tua i accentata sarà rappresentata dal byte 0xEC; se è in 
utf8 sarà la coppia di byte 0xC3 0xAC. Se non si conosce questa 
informazione diventa difficile sapere chsa voglia dire 0xEC: per esempio 
interpretata in un encoding russo (koi8-r) 0xEC rappresenta la lettera 
"Л" (la L maiuscola in cirillico). E così via, incasinando...

Il "commento magico" in cima ai sorgenti Python serve a specificare 
cosa vogliono dire i caratteri con valore ascii > 127 nel sorgente. 
Senza di quello toccherebbe tirare a indovinare (come fa Notepad, 
regolarmente scazzando 
<http://www.hoax-slayer.com/bush-hid-the-facts-notepad.html>) mentre 
Python preferisce tirare un'eccezione nel dubbio.


-- 
Daniele Varrazzo - Develer S.r.l.
http://www.develer.com


Maggiori informazioni sulla lista Python