<div id="mb_2"><div>Ciao Lawrence,<br> grazie per la pronta risposta. :-)<br><br><div><span class="q"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>> Ho avuto l'accortezza (spero di aver fatto bene) di mettere in testa la
<br>> stringa:<br>> -*- coding: latin-1 -*-<br><br>Questo ha poco a che vedere. Serve per i commenti e gli<br>identificatori. Insomma serve per poter "digitare" caratteri in<br>Latin-1 nel file .py. Ciò che tu stai facendo è passare al server una
<br>stringa con un encoding che lui non sa. Non esiste stringa senza<br>encoding. Questo è un concetto fondamentale da capire. Se vuoi<br>approfondire: <a href="http://www.joelonsoftware.com/articles/Unicode.html" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://www.joelonsoftware.com/articles/Unicode.html
</a> e<br><a href="http://www.jorendorff.com/articles/unicode/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://www.jorendorff.com/articles/unicode/</a></blockquote></span></div><div><div><br>
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.
<br>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:<br>a="stringa"
<br>? Dipende da sys.getdefaultencoding?<br><br>Ma perchè una stringa viene interpretata in una maniera se eseguita da python.exe e in un'altra se eseguita da python idle?<br><br>Ho provato a guardare se per caso sys.getdefaultencoding
() restituisce qualcosa di diverso, ma in entrambi gli ambienti restituisce 'ascii'...<br></div></div><div><span class="q"><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
> Quindi ho proceduto con una query del tipo: server.query("select id_attività<br>> from prodotti")<br>> L'errore fornito da python è una cosa del tipo:<br>> pymssql.DatabaseError: internal error: SQL Server message 207, severity 16,
<br>> stat<br>> e 3, line 1:<br>> Il nome di colonna 'id_attivitÓ' non è valido.<br><br>Questo perchè necessitiamo di una informazione fondamentale:<br><br>- in quale encoding è il database?<br><br>Una volta scoperto questo devi fare in modo di codificare tutte le
<br>stringhe secondo il set di caratteri corretto. Vedrai che cosi si<br>risolverà il problema</blockquote></span></div><div><div><br><br>Ok, ci provo. Mi faccio un giro in rete e nella configurazione. :-)<br></div><br>(grazie, forse è la volta che finisco per capire come non subire gli encoding!)
<br></div></div><div><span class="sg"><br>-- <br>Fabrizio Zeno Cornelli
</span></div></div>