我需要创建一个python脚本来将数据从Microsoft SQL Server迁移到PostgreSql。非ascii字符会出现此问题。在Microsoft SQL Server中,我有一个名为table1的表,其中包含一个类型为nvarchar的列,用于存储字符
â
我正在使用pyodbc来检索角色。我的连接字符串是
"ms_sql":{
"DRIVER":"{SQL Server Native Client 11.0}",
"SERVER":"(localdb)\\v11.0",
"DATABASE":"sheshant_database",
"Trusted_Connection":"yes",
"charset":"SQL_Latin1_General_CP1_CI_AS"
ms sql中的排序规则是SQL_Latin1_General_CP1_CI_AS。 当我在Python中检索数据时,它会给出
u'\xe2'
然后我通过psycopg2连接到postgres,这是我的连接字符串参数
"postgres":{
"host":"127.0.0.1",
"user":"postgres",
"password":"regards",
"database":"cmots",
"port":"5432"
在PostgreSQL中,客户端和服务器编码是' latin1'和' utf8'分别。我在psycopg2中使用了命令
'insert into table1 values ('+ a +');' // here a is a unicode and a = u'\xe2'
。但是PostgreSQL中存储的数据是
Γ
哪里出错了?
答案 0 :(得分:0)
检查Windows编码并替换它:
cursor.execute ('insert into table1 values (%s)', a.decode('latin'));