Найти - Пользователи
Полная версия: запись русских символов в бд
Начало » Python для новичков » запись русских символов в бд
1
weeklyTea
Чувствую, я не первый с таким вопросом, но поиски к успеху не привели.
Дело такое: есть MySQL и есть примерно такой скрипт:
#coding: utf-8
import MySQLdb
db = MySQLdb.connect(host = 'localhost', user = 'user', passwd = 'passwd', db = 'dataBase')
cur = db.cursor()
someVar = 'некоторый русскоязычный текст'
cur.execute( """INSERT INTO testTable (text) VALUES (%s)""", (someVar) )
db.commit()

В итоге в базу записываются непонятные символы, при чем кодировка поля в которое записывается utf8-default collation, тип поля: longtext. Питон версии 2.7

Не подскажете в чем может быть ошибка?
snoopt
Попробуйте при коннекте указать кодировку и использовать юникодную строку:
db = MySQLdb.connect(host = 'localhost', user = 'user', passwd = 'passwd', db = 'dataBase',  charset='utf-8')
someVar = u'некоторый русскоязычный текст'

Еще у вас ошибка при запросе: вы посылаете строку вместо кортежа - нужно запятую поставить
cur.execute( """INSERT INTO testTable (text) VALUES (%s)""", (someVar, ) )
weeklyTea


Спасибо, помогло.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB