0

このMySQL リファレンスページの例 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/ | 
+--------------------------+---------------------------------------------------------------------+
4

1 に答える 1

2

INSERT で警告が表示されましたか?

MySQL クライアントが入力内容を正しく解釈しますか? たとえば、サーバーに SSH 接続し、コマンド ラインから mysql を実行している場合、シェル エンコーディングと mysql クライアント エンコーディングの両方が UTF-8 に設定されていますか?

走ってみましたか

SET NAMES 'utf8'

これらのクエリを実行する前に?

于 2008-11-11T10:24:49.943 に答える