Ciao Lawrence,
grazie per la pronta risposta. :-)
Grazie, ho trovato molto interessante ( e divertente) l'articolo di Joel Spolsky, purtroppo non mi ha aiutato molto a dipanare la questione perchè quel che mi manca non è il concetto di UTF-8 o di Unicode, quel che non capisco è come vengono usati in python.
Cerco di spiegarmi: dico che un sorgente ha l'encoding latin-1, che è quello che attribuisce alla lettera à l'encoding \x83. Questo quindi non ha effetto sulle stringhe definite banalmente come:
a="stringa"
? Dipende da sys.getdefaultencoding?
Ma perchè una stringa viene interpretata in una maniera se eseguita da python.exe e in un'altra se eseguita da python idle?
Ho provato a guardare se per caso sys.getdefaultencoding () restituisce qualcosa di diverso, ma in entrambi gli ambienti restituisce 'ascii'...
Ok, ci provo. Mi faccio un giro in rete e nella configurazione. :-)
(grazie, forse è la volta che finisco per capire come non subire gli encoding!)
grazie per la pronta risposta. :-)
> Ho avuto l'accortezza (spero di aver fatto bene) di mettere in testa la
> stringa:
> -*- coding: latin-1 -*-
Questo ha poco a che vedere. Serve per i commenti e gli
identificatori. Insomma serve per poter "digitare" caratteri in
Latin-1 nel file .py. Ciò che tu stai facendo è passare al server una
stringa con un encoding che lui non sa. Non esiste stringa senza
encoding. Questo è un concetto fondamentale da capire. Se vuoi
approfondire: http://www.joelonsoftware.com/articles/Unicode.html e
http://www.jorendorff.com/articles/unicode/
Grazie, ho trovato molto interessante ( e divertente) l'articolo di Joel Spolsky, purtroppo non mi ha aiutato molto a dipanare la questione perchè quel che mi manca non è il concetto di UTF-8 o di Unicode, quel che non capisco è come vengono usati in python.
Cerco di spiegarmi: dico che un sorgente ha l'encoding latin-1, che è quello che attribuisce alla lettera à l'encoding \x83. Questo quindi non ha effetto sulle stringhe definite banalmente come:
a="stringa"
? Dipende da sys.getdefaultencoding?
Ma perchè una stringa viene interpretata in una maniera se eseguita da python.exe e in un'altra se eseguita da python idle?
Ho provato a guardare se per caso sys.getdefaultencoding () restituisce qualcosa di diverso, ma in entrambi gli ambienti restituisce 'ascii'...
> Quindi ho proceduto con una query del tipo: server.query("select id_attività
> from prodotti")
> L'errore fornito da python è una cosa del tipo:
> pymssql.DatabaseError: internal error: SQL Server message 207, severity 16,
> stat
> e 3, line 1:
> Il nome di colonna 'id_attivitÓ' non è valido.
Questo perchè necessitiamo di una informazione fondamentale:
- in quale encoding è il database?
Una volta scoperto questo devi fare in modo di codificare tutte le
stringhe secondo il set di caratteri corretto. Vedrai che cosi si
risolverà il problema
Ok, ci provo. Mi faccio un giro in rete e nella configurazione. :-)
(grazie, forse è la volta che finisco per capire come non subire gli encoding!)
--
Fabrizio Zeno Cornelli
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python