Valentina Marotto ha scritto:
salve,
premessa:
versione python 2.4 (sia su windows che su linux)
ho un problema con l'encode di caratteri accentati nel caso di
inserimento di dati nel database (creato con uno script python) e della
loro lettura.
i dati sono inseriti nel db tramite un form html e visualizzati in form
html per permetterne la modifica.
il problema e' che se insersico caratteri accentati li accetta (a volte)
ma nella visualizzazione per la modifica non li accetta (nella pagina
visualizza delle A seguite da numeretti ma nei campi del form non le
visualizza per niente).
ho provato di tutto:
stringa.encode('nomeencoding') prima dell'inserimento in database,
# -*- coding: iso-8859-1 -*- all'inizio di ogni script
file sitecustomize.py (con sys.setdefaultencoding ('..') importato nei
vari script
in alcuni casi mi da l'errore che 'ascii' non puo' decodificare quei
caratteri.
ho provato qualsiasi tipo di encoding...
L'encoding non si sceglie a caso!
Innanzitutto devi ricavare l'encoding usato dal browser che ti manda i dati.
Come ricavare questo dato dipende dalla libreria che usi.
Fatto questo, quello che devi fare รจ:
stringa.decode('nomeencoding')
per convertire la stringa in Unicode.
A questo punto devi vedere che tipo di encoding supporta il database.
Di solito puoi passare (e ricevere) stringhe Unicode, quindi non ci sono
problemi.
Infine, quando prelevi le stringhe dal database per poi visualizzarle,
devi codificarle usando l'encoding che usi per la tua pagina HTML.
Se il database ti passa stringhe Unicode, basta fare
stringa.encode('nomeencoding').
Saluti Manlio Perillo
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python