【发布时间】:2023-03-26 10:49:01
【问题描述】:
在 osx 雪豹上运行 Python 2.6.1、mysql 5.1。
在我的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, ))
但使用 unicode 字符串时出现错误
UnicodeEncodeError: 'ascii' codec can't encode character u'\xb4' in position 7: ordinal not in range(128)
我不知道...
【问题讨论】:
-
url 列排序规则是什么?