[前][次][番号順一覧][スレッド一覧]

mysql:9238

From: Hirofumi Fujiwara <Hirofumi Fujiwara <fuji@xxxxxxxxxx>>
Date: Tue, 20 Apr 2004 14:08:58 +0900 (JST)
Subject: [mysql 09238] Re: SJISの漢字の第2バイト

藤原です。

> Hirofumi Fujiwara <fuji@xxxxxxxxxx> wrote:
>  | 
>  | > mysql コマンドのオプションで --default-character-set=sjis をつければ良
>  | > いと思います。
>  |   なるほど、確にオプションで sjis を指定すると、
>  | 	mysql> select '表';
>  |   はちゃんと動作しますね。
>  | 
>  |   起動後、
>  | 	mysql> set character set sjis;
>  |   として、sjis を指定しても駄目ってことでしょうか。
> 
> ちょっとマニュアルを検索してみましたが、バージョン 4.1 系では
> それまでと文字セットの考え方が違ってるみたいですね。
> 
> オプションの default-character-set は「サーバの文字セット」で、
> http://dev.mysql.com/doc/mysql/ja/Charset-server.html

  サーバに対して指定したときは「サーバの文字セット」で、
  クライアントに対して指定したときは「クライアントの文字セット」ですね。

> コマンドラインの SET CHARACTER SET は「接続の文字セット」だそうです。
> http://dev.mysql.com/doc/mysql/ja/Charset-connection.html

show variables like 'character_set_connection';
 
> 4.1系を実際に使ってみたことが無いので、
> 現段階でどこまで実装されているのかはわかりませんが、
> サーバに放り込む文字がすべて S-JIS と決まっているなら
> default-character-set で「サーバの文字セット」を指定しておく
> というのがやはり適切なのではないでしょうか。

  すべてがSJISの世界のときには、サーバもクライアントもみんな 
default-character-set = sjis をしておいた方が良いらしいですね。

マニュアル の 4.7.1 データおよびソート用キャラクタセット
の最後の方に、

	[client]
	default-character-set=character-set-name

	しかし、通常は必要ありません。

とありましたが、そうではないというか、SJISを使うときには必要みたいです
ね。

clientのコマンドライン中の文字列を解釈するとき、文字コードが分かってい
ないとトラブルが出る筈なのですが、それは、default-character-setで指定
できるけれど、他の方法
	set character set sjis
	set names sjis
などでは駄目でした。

----
検証:

mysql> show variables like 'character\_%';
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| character_set_server     | sjis  |
| character_set_system     | utf8  |
| character_set_database   | sjis  |
| character_set_client     | sjis  |
| character_set_connection | sjis  |
| character_set_results    | sjis  |
+--------------------------+-------+
6 rows in set (0.00 sec)
 
この状態でも、 '表' は正しく処理されませんが、
クライアント起動時に --default-character-set=sjis または my.cnf
のクライアント指定に default-character-set=sjis と書くことで、
'表' は正常に動くようになりました。

ということは、上の変数で示される状況とは別に、クライアントのコマンドラ
インの解釈のときの文字コード設定が存在するのではないかと思いますが、い
かがでしょうか?

------------------------------------------------------------------
株式会社 タイムインターメディア       藤原 博文 fuji@xxxxxxxxxx
本社 160-0002 東京都新宿区坂町26-27 IPBビル    TEL 03-5362-9009
URL  http://www.timedia.co.jp/                    FAX 03-5362-9008
地図 http://www.timedia.co.jp/company/map/     新宿線曙橋駅徒歩5分
------------------------------------------------------------------
♪  Puzzle Japan  http://www.puzzle.jp/  毎日新作パズルで遊ぼう ♪
------------------------------------------------------------------

[前][次][番号順一覧][スレッド一覧]

      9232 2004-04-19 22:04 [Hirofumi Fujiwara <f] SJISの漢字の第2バイト                   
      9233 2004-04-20 07:43 ┣[とみたまさひろ <tomm]                                       
      9235 2004-04-20 11:26 ┃┗[Hirofumi Fujiwara <f]                                     
      9237 2004-04-20 12:14 ┃ ┗[mohri <mohri@xxxxxxx]                                   
->    9238 2004-04-20 14:08 ┃  ┗[Hirofumi Fujiwara <f]                                 
      9234 2004-04-20 09:20 ┗[きたぢま <kitajima@x]                                       
      9236 2004-04-20 11:48  ┗[SUGAWARA Hajime <sug]