2011-01-25 73 views
0

問候蟒蛇MSSQL編碼問題

通過使用pymssql庫,我想數據寫入MSSQL數據庫,但是我遭遇編碼的問題。下面是我的示例代碼寫入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() 

可悲的是已寫入到數據庫中的數據被破壞:

enter image description here

我的MSSQL數據庫的Collacation是:Turkish_CI_AS 如何這個解決了嗎?

+0

是否將該字符串明確指定爲unicode幫助?例如'INSERT_EX_SQL = u'INSERT INTO myDatabsae(Id,ProgramName,ProgramDetail)VALUES(1,'Test CharactersÜŞiçÇÖö','löşüIIğĞü');「` – Kimvais 2011-01-25 08:19:25

+0

如果我unicode查詢,我得到這樣的錯誤:UnicodeEncodeError:'ascii'codec不能編碼位置84-85字符:序號不在範圍內(128) – Hellnar 2011-01-25 08:23:44

回答

1

Here is a possible solution

的關鍵是INSERT_EX_SQ.encode('your language encoder')。 試試這個:

con.execute_non_query(INSERT_EX_SQ.encode('your language encoder'))