Форум сайта python.su
Всем привет!
Никак не могу добавить русские символы через алхимию в Mysql. Это кошмар какой-то. Все сконфигино под utf8
вот что выдает мускль, чтобы не быть голословным
+--------------------------+--------------------------+
| Variable_name | Value |
+--------------------------+--------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | C:\MySQL\share\charsets\ |
+--------------------------+--------------------------+
def user_reg_process(self):
new_user = Users()
# Set the data.
new_user.reg_date = datetime.datetime.now()
new_user.name = request.POST['name']
new_user.surname = request.POST['surname']
new_user.about = request.POST['about']
print new_user.name
Session.save(new_user)
Session.commit()
redirect_to('/users/user_reg_done')
users = Table('users', metadata,
Column('id', types.Integer, primary_key=True),
Column('name', types.Unicode(50)),
Column('username', types.Unicode(50)),
Column('surname', types.Unicode(50)),
Column('email', types.String(60)),
Column('password', types.String),
Column('about', types.Unicode),
Column('birthday', types.Date),
Column('email', types.String(60)),
Column('tags', types.String),
Column('karma', types.Float),
Column('reg_date', types.Date),
)
class Users(object):
pass
Офлайн
похоже что поле name ожидает unicode а приходит ему utf8 (не пинайте, в pylons не шарю)
чтото вроде
new_user.name = request.POST['name'].decode('utf8')
Офлайн
Возникает резонный вопрос, а через Python DB API получается ввести русские слова? Пример, пожалуйста.
Офлайн
j2aСпасибо, начал тестить с помощью стандартных приемов и нашел, что у меня все таки кодировка базы даных была кривая.
Возникает резонный вопрос, а через Python DB API получается ввести русские слова? Пример, пожалуйста.
users_q = Session.query(Users)
for user in users_q:
print user.name
Офлайн
user.name у тебя в юникоде. Либо используй repr, либо явно кодируй в нужную кодировку.
Офлайн