Только начинаю осваиваться в вопросах БД, параллельно с сами MySQL изучаю ещё и библиотеку для python 2.7 - MySQLdb. Встал вопрос с записью русского текста в таблицу с помощью питона. В самой MySQL везде где можно поставил utf-8:
+--------------------------+----------------------------+
| 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 | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
Вот пример запроса на Python:
# -*- coding: utf-8 -*-
import MySQLdb
db=MySQLdb.connect(host='localhost',user='root',passwd='qwerty',db='new')
cursor=db.cursor()
name='миша'.encode('utf-8')
cursor.execute("INSERT INTO te(first,second) VALUES('%s','asda')",(name))
Скрипт отрабатывает с ошибкой:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 0: ordinal not in range(128)