Gần đây, chúng tôi đã gặp sự cố với mã hóa liên quan đến một trường đang được lưu trữ dưới dạng varchar (120) trong SQL Server. Trong SSMS, varchar xuất hiện dưới dạng:
"Ai đã giết JonBen‚t?"
Tuy nhiên, khi nó được đưa vào trăn, nó xuất hiện như sau:
Tôi đã nghiên cứu điều này từ phía Python và không có gì lạ xảy ra. Lý thuyết của tôi là varchar trong SQL Server đang chấp nhận các ký tự UTF-8 đang hiển thị khác nhau trong python so với SSMS. Tôi không rành lắm về mã hóa trong SQL Server. Ai đó có thể vui lòng cho tôi biết như sau:
- Có cách nào trong SSMS để xem mã hóa của varchar không? Chẳng hạn, xem \ x82 thay vì hiển thị dấu phẩy như hiện tại từ SSMS?
- Chúng tôi đang sử dụng SQL Server 2008. Có cách nào để thay đổi mã hóa cho bất kỳ ký tự UTF-8 nào thành ký tự ASCII mà không cần sử dụng các công cụ nhập / xuất hoặc đổ vào một tệp phẳng không? Tức là tôi có thể thực hiện chuyển đổi này thông qua một truy vấn?
- Có cách nào để xác định lập trình các bản ghi có vấn đề thông qua một truy vấn (có vấn đề được xác định là các ký tự UTF-8 không được hỗ trợ qua ASCII) không?
Cảm ơn bạn trước!
Sử dụng sp_help N'table_name';
tôi thấy rằng Collation của VARCHAR
cột này là : SQL_Latin1_General_CP1_CI_AS
.
sp_help N'table_name';
. Nhìn vào cột dựa trên "tên" và sau đó nhìn vào cột "collation_name".
VARCHAR
Cột đối chiếu là gì sử dụng?