Open Source WEB

キャラクタセット関連のシステム変数の変更の仕方を説明したが、 6種類もあり、あれこれ適当に設定するというのは面倒である。

と思ったら、ちゃんと、サーバーとクライアントの接続関係の 文字コードの設定を一発で行なえるらしきステートメントが用意されていた。

SET NAMES character_set_name

SET CHARACTER SET character_set_name

ここで、起動オプションを無くしてみよう。てっとり早くそうするために、 /etc/my.cnf と ~/.my.cnf を消してみた。我ながら、乱暴なやり方だ。 そして、MySQLサーバと、mysqlクライアントコマンドを起動した。

すると、キャラクタセット関係は英語バージョンになっている。

mysql> SHOW VARIABLES LIKE 'character\_set\_%';
+--------------------------+--------+
| Variable_name            | Value  |
+--------------------------+--------+
| character_set_client     | latin1 |
| character_set_connection | latin1 |
| character_set_database   | latin1 |
| character_set_results    | latin1 |
| character_set_server     | latin1 |
| character_set_system     | utf8   |
+--------------------------+--------+
6 rows in set (0.00 sec)

SET NAMES character_set_name

では、SET NAMES がどういう風に キャラクタセット関連のシステム変数に 影響するか、ujisにして調べてみよう。

mysql> SET NAMES ujis;
Query OK, 0 rows affected (0.00 sec)

mysql> SHOW VARIABLES LIKE 'character\_set\_%';
+--------------------------+--------+
| Variable_name            | Value  |
+--------------------------+--------+
| character_set_client     | ujis   |
| character_set_connection | ujis   |
| character_set_database   | latin1 |
| character_set_results    | ujis   |
| character_set_server     | latin1 |
| character_set_system     | utf8   |
+--------------------------+--------+
6 rows in set (0.00 sec)

mysql>

となった。ということは、

$ mysql --default-character-set=ujis

として起動時にデフォルトの文字コードを指定したときと情况は同じだ。


SET CHARACTER SET character_set_name

再び、mysqlクライアントコマンドをキャラクタセット指定なしで立ち上げて、 英語バージョン状態にしておこう。

ここで、SET CHARACTER SET で ujisを指定してみよう。

mysql> SET CHARACTER SET ujis;
Query OK, 0 rows affected (0.00 sec)

mysql> SHOW VARIABLES LIKE 'character\_set\_%';
+--------------------------+--------+
| Variable_name            | Value  |
+--------------------------+--------+
| character_set_client     | ujis   |
| character_set_connection | latin1 |
| character_set_database   | latin1 |
| character_set_results    | ujis   |
| character_set_server     | latin1 |
| character_set_system     | utf8   |
+--------------------------+--------+
6 rows in set (0.00 sec)

今度は、character_set_client と character_set_results は変更されたが、 character_set_connection は変更されなかった。 似ているけれども、ちょっと違いがあるようだ。


戻る:SET文によるキャラクタセットの変更

次へ:複数キャラクタセット対応端末gnome-terminal


フィードバック:

Name:
Comment:

There is no comment.

このサイトは、 IPA の「平成15年度オープンソフトウエア活用基盤整備事業」 の委託事業として開発されたKahuaで試験的に運用しております。

Copyright (c) 2004-2007 株式会社タイムインターメディア About Us