我试图让我的MySQL表在这个MySQL Reference页面中表现为示例2中的utf8表:
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/ |
+--------------------------+---------------------------------------------------------------------+
答案 0 :(得分:2)
您的INSERT上有任何警告吗?
您确定您的MySQL客户端会正确解释您输入的内容吗?例如。如果你正在SSH服务器,并从命令行运行mysql,shell编码和mysql客户端编码都设置为UTF-8?
您是否尝试过
SET NAMES 'utf8'
在运行这些查询之前?