[Gfoss] postgres, spalialite, python e Collation
Niccolo Rigacci
niccolo a rigacci.org
Mer 5 Dic 2012 12:25:53 CET
On Wed, Dec 05, 2012 at 12:13:25PM +0100, Luca Mandolesi wrote:
>
> quale codifica dare al codice python?
Mi associo a quelli che con Python e Unicode e UTF-8 hanno
battuto il naso!
Il charset con cui scrivi il sorgente non è fondamentale, sebbene
sia meglio usare UTF-8 e dichiararlo con lo pseudo-commento
all'inizio del file stesso.
La parte importante e complicata è gestire correttamente il
charset durante la vita delle variabili nel programma.
Se può aiutare qui ho preso un po' di appunti, anche se gli
esempi sono su MySQL credo che la logica sia la stessa con
PostgreSQL:
https://www.rigacci.org/wiki/doku.php/doc/appunti/prog/python_unicode
In pratica devi sempre assicurarti che le variabili durante la
vita del programma siano type() = unicode.
Qusto ha il vantaggio - ad esempio - che la lunghezza in una
stringa della "a accentata" sia 1 carattere, indipendentemente
dalla codifica (in UTF-8 sono due byte).
Quindi devi stare attento quando leggi dal database a
decodificare le stringhe. Se hai fatto tutto per bene avviene in
automatico, altrimenti ti trovi una stringa type() = str e quindi
la devi forzare con pippo = pippo.decode('utf-8').
Infine devi stare attento a codificare (in utf-8, mi raccomando!)
le stringhe quando ne fai l'output (a schermo, nel database, su
file, ecc.).
Spero di non averti confuso ulteriormente!
--
Niccolo Rigacci - http://www.rigacci.net/
Firenze - Italy
Tel. Office: +39-055-9331021, Mobile: +39-327-5619352
Maggiori informazioni sulla lista
Gfoss