2011-01-25 120 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'))