masalah pengkodean python ke mssql

Salam

Dengan menggunakan pustaka pymssql, saya ingin menulis data ke database MSSQL namun saya mengalami masalah pengkodean. Ini contoh kode saya untuk menulis ke DB:

# -*- 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()

Sayangnya data yang ditulis ke DB rusak:

masukkan deskripsi gambar di sini

Susunan db mssql saya adalah: Turkish_CI_AS Bagaimana ini bisa diselesaikan?


person Hellnar    schedule 25.01.2011    source sumber
comment
Apakah menentukan string secara eksplisit sebagai unicode membantu? misalnya INSERT_EX_SQL = u"INSERT INTO myDatabsae (Id, ProgramName, ProgramDetail) VALUES (1, 'Test Characters ÜŞiçÇÖö', 'löşüIIğĞü');"   -  person Kimvais    schedule 25.01.2011
comment
Jika saya melakukan unicode kueri, saya mendapatkan kesalahan seperti ini: UnicodeEncodeError: codec 'ascii' tidak dapat menyandikan karakter di posisi 84-85: ordinal tidak dalam rentang (128)   -  person Hellnar    schedule 25.01.2011


Jawaban (1)


Berikut adalah solusi yang mungkin:

Kuncinya adalah INSERT_EX_SQ.encode('your language encoder'). Coba ini sebagai gantinya:

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