Python psycopg2 не в utf-8



Я использую Python для подключения к моей базе данных postgresql следующим образом:



conn=psycopg2.connect(database="fedour", user="fedpur", password="***", host="127.0.0.1", port="5432")


Для этого нет проблем.



Но когда я делаю запрос и хочу напечатать курсор, у меня получается примерно следующее:



"Franxc3xa7ois "вместо " François", и это вызывает проблемы, когда я хочу создать XML-документ с этим.
Я думаю, что это произошло из-за моей кодировки, но я нашел какое-то решение. Я пытаюсь кодировать ('utf-8'), но не получается.



Я тоже видел что-то подобное, но это только для mySQL



MySQLdb.connect(charset='utf8', init_command='SET NAMES UTF8')


Вы можете мне помочь ? Спасибо

753   2  

2 ответов:

Убедитесь, что вы используете правильную кодировку, запустив: print conn.encoding, и если вам нужно, вы можете установить правильную кодировку с помощью conn.set_client_encoding('UNICODE') или conn.set_client_encoding('UTF8').

Правильно ли вставляется значение при выполнении запроса через командную строку?

Если да,то проблема заключается в выполнении курсора.Попробуйте cur.execute(u"querystring"); (u указывает кодировку utf)

Если нет, то вам нужно установить тип кодировки postgres, чтобы рассмотреть utf-8. Вы можете обратиться к кодировке символов в Postgres , чтобы узнать, как установить кодировку символов по умолчанию для базы данных и преобразование на лету из одной кодировки в другую.

Comments

    Ничего не найдено.