Python 2.6.1, mysql 5.1 sur osx snow léopard.Python - mysqldb insérant unicode échoue
Dans mon code python pour me connecter je fais; use_unicode = True, charset = "UTF8"
mysql me dit
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)
Nous sommes tous bien là. Ma structure de table est définie comme 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;
Ma déclaration est comme
insert("INSERT INTO urls (url) VALUES (%s)", (url,))
mais avec une chaîne unicode je reçois une erreur
UnicodeEncodeError: 'ascii' codec can't encode character u'\xb4' in position 7: ordinal not in range(128)
Je suis indice moins ....
Quel est le classement de la colonne url? – Sam
utf8_general_ci – Wizzard