我试图将中文文本存储在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()
答案 0 :(得分:4)
尝试在文件开头添加# -*- coding: utf-8 -*-
,然后再更改
q1 = '''
到
q1 = u'''
这应该在脚本中启用Unicode支持,并在发送到数据库引擎时正确编码中文字符。