Миграция с ms sql на postgres nonascii символов ошибка python
Мне нужно создать скрипт 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'
Затем я подключаюсь к postgres через psycopg2, и это мой параметр строки подключения.
"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,
Γ
Где это пошло не так?
1 ответ
Проверьте кодировку Windows и замените ее:
cursor.execute ('insert into table1 values (%s)', a.decode('latin'));