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

mysql:11273

From: とみたまさひろ <とみたまさひろ <tommy@xxxxxxxxxx>>
Date: Sat, 26 Mar 2005 02:37:01 +0900
Subject: [mysql 11273] Re: mysqldump での文字化け(自己解決)

とみたです。

On Wed, 23 Mar 2005 08:53:33 +0900
wac54348@xxxxxxxxxx wrote:

> MySQL ver 4.1.9-standard で下記のようにデフォルトで利用しています。
> 
> 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                       |
> | character_sets_dir       | /usr/share/mysql/charsets/ |
> +--------------------------+----------------------------+
> 
> mysqldump をオプションなしで実行すると、テーブルの内容(ujis)が文字化けして
> しまいました。
> --default-character-set=latin1 を明示すると、文字化けがなくなりました。

mysqldump はデフォルトでは utf8 で文字列を出力します。フィールドの型が 
utf8 でない場合は自動的に変換されます。そのために文字化けしてるように
見えてしまいます。

--default-character-set=latin1 を指定すると、サーバとクライアントで文
字コードが同一になり、文字コードの変換が発生しないので、文字化けしません。

ところで、latin1 のフィールドに ujis を入れるのはやめた方がいいと思い
ます。「昔話」と「聡明」と「総論」が同じと見なされたりするので… (^^;

	mysql> set names latin1;
	mysql> select "昔話"="聡明", "昔話"="総論";
	+---------------+---------------+
	| "昔話"="聡明" | "昔話"="総論" |
	+---------------+---------------+
	|             1 |             1 |
	+---------------+---------------+

-- 
とみたまさひろ <tommy@xxxxxxxxxx>
日本MySQLユーザ会 http://www.mysql.gr.jp

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

     11241 2005-03-23 08:53 [<wac54348@xxxxxxxxxx] mysqldump での文字化け(自己解決)      
->   11273 2005-03-26 02:37 ┗[とみたまさひろ <tomm]                                       
     11323 2005-04-14 20:42  ┗[<wac54348@xxxxxxxxxx]                                     
     11334 2005-04-20 08:27   ┗[とみたまさひろ <tomm]