ปัญหาการเข้ารหัสหลามเป็น mssql

ทักทาย

เมื่อใช้ไลบรารี pymssql ฉันต้องการเขียนข้อมูลไปยังฐานข้อมูล MSSQL อย่างไรก็ตาม ฉันพบปัญหาในการเข้ารหัส นี่คือโค้ดตัวอย่างของฉันที่จะเขียนไปยังฐานข้อมูล:

# -*- coding: utf-8 -*-
import _mssql

....
Connection info data here
....


def mssql_connect():
    return _mssql.connect(server=HOST, user=USERNAME, password=PASS, database=DB, charset="utf-8")

con = mssql_connect()
INSERT_EX_SQL = "INSERT INTO myDatabsae (Id, ProgramName, ProgramDetail) VALUES (1, 'Test Characters ÜŞiçÇÖö', 'löşüIIğĞü');"
con.execute_non_query(INSERT_EX_SQL)
con.close()

น่าเสียดายที่ข้อมูลที่เขียนไปยัง DB เสียหาย:

ป้อนคำอธิบายรูปภาพที่นี่

Collacation ของ mssql db ของฉันคือ: Turkish_CI_AS จะแก้ไขได้อย่างไร


person Hellnar    schedule 25.01.2011    source แหล่งที่มา
comment
การระบุสตริงอย่างชัดเจนว่าเป็นยูนิโค้ดช่วยหรือไม่ เช่น. INSERT_EX_SQL = u"INSERT INTO myDatabsae (Id, ProgramName, ProgramDetail) VALUES (1, 'Test Characters ÜŞiçÇÖö', 'löşüIIğĞü');"   -  person Kimvais    schedule 25.01.2011
comment
หากฉันเข้ารหัสแบบสอบถาม ฉันได้รับข้อผิดพลาดดังกล่าว: UnicodeEncodeError: 'ascii' codec can't encode character in position 84-85: ordinal not in range(128)   -  person Hellnar    schedule 25.01.2011


คำตอบ (1)


นี่คือวิธีแก้ปัญหาที่เป็นไปได้:

สิ่งสำคัญคือ INSERT_EX_SQ.encode('your language encoder') ลองสิ่งนี้แทน:

con.execute_non_query(INSERT_EX_SQ.encode('your language encoder'))
person Tieying Zhang    schedule 05.04.2011