Нещодавно у нас виникла проблема з кодуванням, пов’язаним із полем, яке зберігається як varchar (120) у SQL Server. У SSMS varchar з'являється як:
"Хто вбив Джонбена?"
Однак, коли він введений у python, він виглядає як:
Я досліджував це з боку Python, і нічого дивного не відбувається. Моя теорія полягає в тому, що varchar в SQL Server приймає символи UTF-8, які відображаються в python інакше, ніж SSMS. Я не дуже знайомий з кодуванням в SQL Server. Може хтось, будь ласка, дайте мені знати наступне:
- Чи існує спосіб у SSMS переглянути кодування варчара? Наприклад, бачите \ x82 замість того, щоб відображати кому, як це зараз у SSMS?
- Ми використовуємо SQL Server 2008. Чи є спосіб змінити кодування будь-яких символів UTF-8 на символи ASCII без використання інструментів імпорту / експорту чи скидання до плоского файлу? Тобто я можу здійснити це перетворення за допомогою запиту?
- Чи є спосіб програмного виявлення проблемних записів за допомогою запиту (проблематичний визначається як символи UTF-8, які не підтримуються через ASCII)?
Заздалегідь спасибі!
Використання sp_help N'table_name';
я виявив , що Впорядкування цього VARCHAR
стовпця: SQL_Latin1_General_CP1_CI_AS
.
sp_help N'table_name';
. Подивіться на стовпчик на основі "ім'я", а потім подивіться на стовпець "collation_name".
VARCHAR
стовпець?