Recentemente, tivemos um problema com a codificação relacionada a um campo que está sendo armazenado como um varchar (120) no SQL Server. No SSMS, o varchar aparece como:
"Quem matou JonBen?"
No entanto, quando é trazido para python, ele aparece como:
Eu pesquisei isso do lado do Python, e nada de estranho está acontecendo. Minha teoria é que o varchar no SQL Server está aceitando caracteres UTF-8 que são exibidos de maneira diferente em python e SSMS. Não estou muito familiarizado com a codificação no SQL Server. Alguém pode me informar o seguinte:
- Existe uma maneira no SSMS para exibir a codificação do varchar? Por exemplo, consulte \ x82 em vez de exibir a vírgula como atualmente é do SSMS?
- Estamos usando o SQL Server 2008. Existe alguma maneira de alterar a codificação de caracteres UTF-8 para caracteres ASCII sem usar ferramentas de importação / exportação ou despejar em um arquivo simples? Ou seja, posso fazer essa conversão através de uma consulta?
- Existe alguma maneira de identificar programaticamente registros problemáticos por meio de uma consulta (problema problemático sendo definido como caracteres UTF-8 que não são suportados pelo ASCII)?
Agradeço antecipadamente!
Usando sp_help N'table_name';
descobri que o Agrupamento desta VARCHAR
coluna é: SQL_Latin1_General_CP1_CI_AS
.
sp_help N'table_name';
. Olhe para a coluna com base em "nome" e, em seguida, olhe para a coluna "collation_name".
VARCHAR
coluna está usando?