mysql:15409
From: Yukio Kinoshita <Yukio Kinoshita <inahou@xxxxxxxxxx>>
Date: Thu, 30 Sep 2010 19:21:12 -0700
Subject: [mysql 15409] Re: 複数の文字コードが混在している時のmysqldump の文字コード指定
ひらつかさん ありがとうございます。 > sjisのテーブルにどのようにしてこれらのデータを入れましたか? まず、(波線、表、まるいち、はしごだか)を秀丸エディタにて、Shift_JIS、EUC、UTF-8 にて保存。 以下のコマンドにて、インサートしました。 # mysql test -e "insert into t_sjis values('`cat sjis.txt`');" --default-character-set=sjis # mysql test -e "insert into t_ujis values('`cat ujis.txt`');" --default-character-set=ujis # mysql test -e "insert into t_utf8 values('`cat utf8.txt`');" --default-character-set=utf8 > sjisではなく、cp932でテーブルを作って試してみるといかがでしょう? > > また、cp932でテーブルを作った場合に > --default-character-set=utf8 でダンプ、リストアをすると > どうなるでしょう? # mysqldump test --default-character-set=utf8 > dump.utf8 # mysql test --default-character-set=utf8 < dump.utf8 のようにやってみましたところ、 cp932 - OK sjis - NG (後半2文字が化ける) ujis - NG (まるいち のみ化ける) utf8 - OK という結果になりました。dump.utf8 の中身を見てみると既に化けています。 やっぱり複数文字コード混在環境では、mysqldump は --default-character-set=binary を付けるしかないんですね。 binary にして問題が無いと仮定すると、そもそもmysqldumpに文字コード指定オプションがあること自体 意味がわからなくなってきました。 文字コード毎に、mysqldump を分けて実行するしかないのでしょうか。 木下
15406 2010-09-30 14:04 [inahou <inahou@xxxxx] 複数の文字コードが混在している時のmysqldump の文字コード指定 15407 2010-10-01 04:42 ┗[inahou <inahou@xxxxx] 15408 2010-10-01 09:32 ┗[HIRATSUKA Sadao <hir] -> 15409 2010-10-01 11:21 ┗[Yukio Kinoshita <ina] 15410 2010-10-01 13:27 ┗[HIRATSUKA Sadao <hir] 15411 2010-10-02 05:14 ┗[Yukio Kinoshita <ina]