2009年7月22日

[mysql 14994] Re: 文字化けたダンプデータの救済

shin-1さん、はじめまして。

>create table文にはDEFAULT CHARSET=latin1 がついており、
>もちろんdumpデータは全て文字化けていました。

create table文の文字コードを変更されていないのであれば
latin1の文字コードのテーブルにsjisのデータをつっこんだので文字化けしているのでは
と思いました。


一度すべてのテーブルをdropして、mysqldumpしてきたファイル内にある
create table文のDEFAULT CHARSET=latin1をsjisに変更してテーブル再作成後に
再度ロードを試みられてはいかがでしょうか


2009/07/22 14:53 に <shin-1@xxxxx> さんは書きました:
> 柳本さん、たけさん、こんにちは
>
>>早速ですが、こちらでいかがでしょうか?
>> http://c-brains.jp/blog/wsg/07/06/26-184612.php
>>
>>外していたらゴメンなさい^^;
>
> ありがとうございます。柳本さんのコメントを見てから、諦め気分で
> 色々キーワードを変えて検索していたところ、私もちょうどその記事
> に行き着いたところでした。
>
> おかげさまで、文字化けデータは読めるようになりました。
> いまは、MySQLへ放り込むところで、つまづいています。
>
> latin1→utf8の強制変換が掛かっていたという事で、その記事に
> あったように(多少違いますが)
> 1.秀丸でutf8ファイルとして強制的に開く(警告でるけど無視)
> 2.名前をつけて保存で、latin1(欧文)を指定して保存
> 3.再度開くと元のDBに格納されていた文字コードで開ける
> という手順で読めるデータに戻すことができました。格納されていたのは
> Shift_JISだったようです。
> (3.で開くときは警告無しでしたので完全に戻せたようです)
>
> 今は、このShift_JISのテキストデータを、きちんとShift_JISのテーブル
> として、MySQLに放り込もうとmy.cnfや、DEFAULT CHARSET=の記載など
> を色々変えて試してみているところです。
>
> DEFAULT CHARSET=latin1の箇所をDEFAULT CHARSET=sjis;に書き換え
>
> [mysqld]
> default-character-set=sjis
> skip-character-set-client-handshake
> と変えておいて、サーバ再起動。
>
> create database を行い。mysqlプロンプト上でset names sjisを行って
> から、source /home/〜.dump とやったのですが、selectを掛けてみると
> ?????と文字化けしています。
>
> show variables like "char%"; を見てみると
> | character_set_system | utf8
> と、systemだけがutf8になっています。これは4.1ではutf8固定との事ですし。
> 他は全てsjisになっているし、テキストファイルもSJISで記載されていれば
> 問題ないと思ったのですが、手順がどこか間違っているのでしょうか?
>
>


投稿者 xml-rpc : 2009年7月22日 18:24
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/86840
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。