我正在尝试将中文文本存储在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()

最佳答案

尝试在文件开头添加# -*- coding: utf-8 -*-,并进行更改

q1 = '''




q1 = u'''


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

10-01 17:18