Найти - Пользователи
Полная версия: русская кодировка под убунту
Начало » Базы данных » русская кодировка под убунту
1
Lyes
добрый день. помогите новичку плз.
есть mysql живущий на убунте. есть таблица в бд с текстовым полем CHARACTER SET utf8. надо прочитать файлик в кодировке cp1251 и записать каждую строчку в табличку.
читается файлик нормально. а вот записать не получается:
WordFile = open (sys.argv, ‘r’)
for line in WordFile :
s = unicode(line, “cp1251”)
query=“insert into word (ordinary_spelling) values ('”+s+“')”
cursor.execute(query)

потом чтобы проверить запросом счиываю из бд и сохраняю в файл. вместо русских букв появляютя знаки ???
что делать, может кто подскажет?
regall
Что используете для коннекта к БД?
В случае mysqldb - нужно при указании DSN указать use_unicode
Lyes
коннекчусь как обычно
connection = MySQLdb.connect(host='localhost', user='user1', passwd='123456', db='testdb',use_unicode = 1, charset = ‘utf8’)
regall
А можно код записи в файл?
Lyes
целиком выглядит так:

WordFile = open (sys.argv, ‘r’)
for line in WordFile :
s = unicode(line, “cp1251”)
query=“insert into word (ordinary_spelling) values ('”+s+“')”
cursor.execute(query)
query=“select ordinary_spelling from word”
cursor.execute(query)
word = cursor.fetchone()
resFile = open (“lyes.test”, ‘w’)
resFile.write(word)
resFile.close()

соответственно файл записываю тоже стандартными методами
Lyes
нашел что делать надо. мож кому понадобиться - кодировки надо выставить сначала:
cursor.execute('SET NAMES utf8')
cursor.execute('SET CHARACTER SET utf8')
cursor.execute('SET character_set_connection=utf8')
NSkrypnik
Имхо
строки
cursor.execute('SET CHARACTER SET utf8')
cursor.execute('SET character_set_connection=utf8')
лишние. Будет работать и просто с cursor.execute('SET NAMES utf8').
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