0

我试图让我的 MySQL 表在这个MySQL 参考页面的示例 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/ | 
+--------------------------+---------------------------------------------------------------------+
4

1 回答 1

2

您是否在 INSERT 上收到任何警告?

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

你试过跑步吗

SET NAMES 'utf8'

在运行这些查询之前?

于 2008-11-11T10:24:49.943 回答