เมื่อเร็ว ๆ นี้เรามีปัญหาเกี่ยวกับการเข้ารหัสที่เกี่ยวข้องกับเขตข้อมูลที่ถูกเก็บเป็น varchar (120) ใน SQL Server ใน SSMS, varchar จะปรากฏเป็น:
"ใครฆ่า JonBen‚t"
อย่างไรก็ตามเมื่อมันถูกนำเข้าสู่ไพ ธ อนมันจะปรากฏเป็น:
ฉันค้นคว้าจากด้าน Python แล้วไม่มีอะไรแปลก ๆ เกิดขึ้น ทฤษฎีของฉันคือ varchar ใน SQL Server ยอมรับอักขระ UTF-8 ซึ่งแสดงใน python แตกต่างจาก SSMS ฉันไม่คุ้นเคยกับการเข้ารหัสใน SQL Server มาก ใครช่วยได้โปรดแจ้งให้เราทราบต่อไปนี้:
- มีวิธีใน SSMS เพื่อดูการเข้ารหัสของ varchar หรือไม่? ตัวอย่างเช่นดู \ 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
คอลัมน์นั้นใช้การจัดเรียงแบบใด