2008-11-11 89 views
1

我试图让我的MySQL表从此MySQL Reference页面表现为实例2在UTF8表标榜不工作:MySQL的排序规则在文档

CREATE TABLE germanutf8 (c CHAR(10)) CHARACTER SET utf8 COLLATE utf8_unicode_ci; 
INSERT INTO germanutf8 VALUES ('Bar'), ('Bär'); 
SELECT * FROM germanutf8 WHERE c = 'Bär'; 

根据实例,这应该产生:

+------+ 
| c | 
+------+ 
| Bar | 
| Bär | 
+------+ 

但我得到的只是简单的"Bär"。难道我做错了什么?我应该调整我的设置吗?

我在Mac OS X上的MySQL 5.0.45上和Red Hat上的5.0.51a上试过这个。

编辑:我试过设置SET NAMES 'utf8',但这仍然给出了相同的结果。这样做后我的变量是

+--------------------------+---------------------------------------------------------------------+ 
| 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  | latin1                | 
| character_set_system  | utf8                | 
| character_sets_dir  | /usr/local/mysql-5.0.45-osx10.4-powerpc-64bit/share/mysql/charsets/ | 
+--------------------------+---------------------------------------------------------------------+ 

回答

2

你有没有得到任何警告你的INSERT?

你确定你的MySQL客户端解释你输入的内容是正确的吗?例如。如果您正在通过SSH连接到服务器,并从命令行运行mysql,那么shell编码和mysql客户端编码都设置为UTF-8?

你试过运行这些查询之前运行

SET NAMES 'utf8'