Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pyodbc:如何在SQL数据库中存储汉字?_Python_Sql Server_Pyodbc - Fatal编程技术网

Python pyodbc:如何在SQL数据库中存储汉字?

Python pyodbc:如何在SQL数据库中存储汉字?,python,sql-server,pyodbc,Python,Sql Server,Pyodbc,我正在尝试将中文文本存储在Microsoft SQL数据库中 我的列类型是nvarchar。如果我直接在SSMS中运行此查询,结果将正确保存: insert into xtemp (ind, desp) values (1, N'人大花来民北村分社訃実真属葉') 但若我试图从python代码中执行此操作,数据库将其存储为“????????” 谁能给我指出正确的方向吗 这是我的python代码: connectionString1 = 'Driver={SQL Server};Serve

我正在尝试将中文文本存储在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()
尝试在文件的开头添加
#-*-编码:utf-8-*-
,并进行更改

q1 = '''

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

尝试在文件开头添加
-*-编码:utf-8-*-
,同时更改

q1 = '''


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

你真是个天才!非常感谢你,Alex。如果我使用
“插入结果值(?,?,?,?,?);”
使用
pyodbc
,我是否应该将其更改为
“插入结果值(u?,u?,u?,u?,u?,u?)”
你真是个天才!非常感谢您,Alex。如果我使用
“插入结果值(?,?,?,?,?);”
使用
pyodbc
,我是否要将其更改为
“插入结果值(u?,u?,u?,u?,u?;”