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')
Вы можете мне помочь ? Спасибо
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