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

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]