Python 2.6.1, mysql 5.1 на ОСx Snow Leopard.
В моем коде Python для подключения я делаю;
use_unicode = True, charset = "utf8"
MySQL говорит мне
mysql> SHOW VARIABLES LIKE "character_set%";
+--------------------------+--------------------------------------------------------+
| Variable_name | Value |
+--------------------------+--------------------------------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql-5.1.52-osx10.6-x86_64/share/charsets/ |
+--------------------------+--------------------------------------------------------+
8 rows in set (0.00 sec)
Так что у нас все хорошо.
Моя структура таблицы определяется как utf8
CREATE TABLE `urls` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`url` varchar(300) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `url_idx` (`url`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Мое утверждение похоже на
insert("INSERT INTO urls (url) VALUES (%s)", (url, ))
но со строкой Юникода я получаю ошибку
UnicodeEncodeError: 'ascii' codec can't encode character u'\xb4' in position 7: ordinal not in range(128)
Я понятия не имею ....