[Python] Curiosa interpretazione dell'encoding nelle stringhe di mssql

Fabrizio Cornelli fabrizio.cornelli a gmail.com
Ven 1 Set 2006 11:27:50 CEST


Ciao Lawrence,
  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
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: http://lists.python.it/pipermail/python/attachments/20060901/b58ba675/attachment.html


Maggiori informazioni sulla lista Python