Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 3, 2011 21:06:46

F_r_a_n_k
От:
Зарегистрирован: 2011-04-03
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

MySQLdb: кодировка

Привет всем!
Подскажите, как настроить кодировку
при выводе результатов запроса???

кодировка файла utf-8
пробовал указывать кодировку при MySQLdb.connect()
пробовал посылкать запрос в базу SET NAMES utf8
и всё сразу!

в чем дело? помогите!



Офлайн

#2 Апрель 3, 2011 22:08:09

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

MySQLdb: кодировка

А в чем у вас проблема?



Офлайн

#3 Апрель 6, 2011 22:25:19

F_r_a_n_k
От:
Зарегистрирован: 2011-04-03
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

MySQLdb: кодировка

вот что мне приходит:

1 юпр
2 лсгшйю
5 йхмн
3 ондхсл
4 едю
6 цняреопххлярбн
8 мнбнярх
9 ютхью
10 юбрн
11 ймхцх
должный быть слова кирилицей.

вот мой код:
#!/usr/bin/env python
#-*-coding:utf-8-*-

import MySQLdb
import string

db_host = 'xxx'
db_user = 'xxx'
db_pass = 'xxx'
db_name = 'xxx'
db_char = 'ascii'

db = MySQLdb.connect(host=db_host, user=db_user, passwd=db_pass, db=db_name)
cursor = db.cursor()

#cursor.execute('SET NAMES koi8r');
#cursor.execute('SET character_set_client="ascii"');
#cursor.execute('SET character_set_results="ascii"');
#cursor.execute('SET collation_connection="ascii"');

cursor.execute("SELECT `section_id`, `section_name` FROM `gloss`")

numrows = int(cursor.rowcount)

data = cursor.fetchall()

for rec in data:

section_id, section_name = rec

print section_id, section_name


db.close()
Спасибо!



Офлайн

#4 Апрель 12, 2011 16:15:46

jingvar
От:
Зарегистрирован: 2010-03-24
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

MySQLdb: кодировка

Присоединиюсь к вопросу.
Думаю все согласятся, что utf8 наиболее правильная кодировка.
Как можно не наступать каждый раз на грабли с кодировкой?
ubuntu 10.10. Поставил mysql. Кроме пароля рута оно вроде ничего при установке не спрашивает.
Так вот какие параметры нужно поменять сразу в mysql, чтобы все было в utf8, какие параметры использовать при создании базы-таблицы чтобы было utf8, какие параметры использовать в mysqldb чтобы было utf8, как делать правильно в питоне cursor.execute('instert into table …%s' %value) всегда utf8.



Офлайн

#5 Апрель 27, 2011 19:43:41

Alarik
От:
Зарегистрирован: 2011-04-27
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

MySQLdb: кодировка

Попробуйте в my.cnf добавить:

[client]
default-character-set = utf8

[mysqld]
character-set-server=utf8
collation-server=utf8_unicode_ci
init_connect='set collation_connection = utf8_unicode_ci;'
После этого удалить и заново создать таблицы (ну или изменить текущий collation)



Отредактировано (Апрель 27, 2011 19:45:05)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version