pyodbc:如何在SQL数据库中存储中文字符?

时间:2017-01-04 01:40:33

标签: python sql-server pyodbc

我试图将中文文本存储在Microsoft SQL数据库中。

我的列类型是nvarchar。如果我直接在SSMS中运行此查询,结果将正确保存:

  insert into xtemp (ind, desp)
  values (1, N'人大花来民北村分社訃実真属葉')

但是,如果我尝试从python代码中执行此操作,数据库只会将其存储为" ????????????"

有人能指出我正确的方向吗?

这是我的python代码:

connectionString1 = 'Driver={SQL Server};Server=x.database.windows.net,1433;Database=x;Uid=x;Pwd=x;Connection Timeout=30;Encrypt=yes;CHARSET=UTF8;'
connection1 = pyodbc.connect(connectionString1)
cursor1 = connection1.cursor()

q1 = '''
insert into xtemp (ind, desp)
  values (2, N'人大花来民北村分社訃実真属葉')
'''

cursor1.execute(q1)
connection1.commit()


print("done")
cursor1.close()
connection1.close()

1 个答案:

答案 0 :(得分:4)

尝试在文件开头添加# -*- coding: utf-8 -*-,然后再更改

q1 = '''

q1 = u'''

这应该在脚本中启用Unicode支持,并在发送到数据库引擎时正确编码中文字符。