Di recente abbiamo riscontrato un problema con la codifica correlata a un campo archiviato come varchar (120) in SQL Server. In SSMS, varchar appare come:
"Chi ha ucciso JonBen?"
Tuttavia, quando viene portato in Python, appare come:
Ho studiato questo dal lato Python e non sta succedendo niente di strano. La mia teoria è che varchar in SQL Server accetta caratteri UTF-8 che vengono visualizzati in modo diverso in Python rispetto a SSMS. Non ho molta familiarità con la codifica in SQL Server. Qualcuno può farmi sapere quanto segue:
- Esiste un modo in SSMS per visualizzare la codifica del varchar? Ad esempio, vedi \ x82 invece di visualizzare la virgola come è attualmente da SSMS?
- Stiamo utilizzando SQL Server 2008. Esiste un modo per modificare la codifica di caratteri UTF-8 in caratteri ASCII senza utilizzare strumenti di importazione / esportazione o scaricare in un file flat? Cioè posso fare questa conversione tramite una query?
- Esiste un modo per identificare a livello di programmazione record problematici tramite una query (la problematica è definita come caratteri UTF-8 che non sono supportati tramite ASCII)?
Grazie in anticipo!
Utilizzando sp_help N'table_name';
ho scoperto che il confronto di questa VARCHAR
colonna è: SQL_Latin1_General_CP1_CI_AS
.
sp_help N'table_name';
. Guarda la colonna in base al "nome" e poi guarda la colonna "nome_collation".
VARCHAR
usando quella colonna?