Python 2.6.1, mysql 5.1 auf OSX Schneeleopard.Python - mysqldb Einfügen von Unicode schlägt fehl
In meinem Python-Code zu verbinden, mache ich; use_unicode = True, charset = "UTF-8"
mysql sagt mir
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)
Also haben wir es alle gut sind. Meine Tabellenstruktur wird als UTF-8 definiert
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;
Meine Aussage ist wie
insert("INSERT INTO urls (url) VALUES (%s)", (url,))
aber mit einem Unicode-String bekomme ich einen Fehler
UnicodeEncodeError: 'ascii' codec can't encode character u'\xb4' in position 7: ordinal not in range(128)
Ich bin Anhaltspunkt weniger ....
Wie lautet die Spaltenkollatierung der URL? – Sam
utf8_general_ci – Wizzard