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

Manlio Perillo manlio_perillo a libero.it
Ven 1 Set 2006 11:27:13 CEST


Lawrence Oluyede ha scritto:
> [...]
> 
>> 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. 

Ma serve anche per far sapere all'interprete come trasformare gli
unicode literal, o sbaglio?

> [...]

>> 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.
> 

Il problema č che alla Microsoft hanno pensato bene di usare un encoding
diverso per la riga di comando.

L'encoding di sistema č cp1252, quello usato dalla riga di comando č cp850.

Per risolvere basta che esegui il comando
chcp 1252.

> Questo perchč necessitiamo di una informazione fondamentale:
> 
> - in quale encoding č il database?
> 

E lo chiedi pure?
Sarā cp1252. ;-)
(largamente compatibile con latin1, a parte la presenza del carattere
per l'euro e qualche altro paio di differenze)



Saluti  Manlio Perillo


Maggiori informazioni sulla lista Python