我正在尝试将中文文本存储在 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 支持,并在发送到数据库引擎时正确编码汉字。
我是一名优秀的程序员,十分优秀!