Niedawno mieliśmy problem z kodowaniem związanym z polem, które jest przechowywane jako varchar (120) w SQL Server. W SSMS varchar pojawia się jako:
„Kto zabił JonBena?”
Jednak po wprowadzeniu do Pythona wygląda następująco:
Badałem to od strony Pythona i nic dziwnego się nie dzieje. Moja teoria jest taka, że varchar w SQL Server akceptuje znaki UTF-8, które wyświetlają się inaczej w pythonie niż SSMS. Nie znam się dobrze na kodowaniu w SQL Server. Czy ktoś może dać mi znać, co następuje:
- Czy jest jakiś sposób w SSMS, aby zobaczyć kodowanie varchara? Na przykład zobacz \ x82 zamiast wyświetlać przecinek, ponieważ obecnie pochodzi z SSMS?
- Używamy SQL Server 2008. Czy istnieje sposób na zmianę kodowania dowolnych znaków UTF-8 na znaki ASCII bez użycia narzędzi do importu / eksportu lub zrzutu do płaskiego pliku? Czy mogę dokonać tej konwersji za pomocą zapytania?
- Czy jest jakiś sposób na programową identyfikację problematycznych rekordów za pomocą zapytania (problematyczne jest definiowanie jako znaki UTF-8, które nie są obsługiwane przez ASCII)?
Z góry dziękuję!
Korzystanie sp_help N'table_name';
I okazało się, że układanie tej VARCHAR
kolumnie jest: SQL_Latin1_General_CP1_CI_AS
.
sp_help N'table_name';
. Spójrz na kolumnę opartą na „name”, a następnie spójrz na kolumnę „collation_name”.
VARCHAR
używa ta kolumna?