文字コードの設定が異なるデータをdumpすると文字化けが発生していまいます。解決までに予想以上に時間がかかったため、メモ・・・。
今回MySQLをインストールした手段は、XAMPPパッケージ。Windows XPマシンで、MySQLバージョンは5.141。MySQLの文字コードの初期設定は「latin1」。dumpするテーブルデータは「cp932(※1)」。
都合により「cp932」の文字コードでそのまま読み込ませたかったので、MySQLの文字コードを「cp932」に設定する。
まず、初期設定の文字コードを判断するために、「show variables like “char%”」とコマンドを。SHOW VARIABLES 構文はMySQLのシステム変数の値を表示するもの。likeを指定することでパターンと一致する変数のみを表示することができる。

既に文字コードを設定した後なので「cp932」になっているが、初期設定では「latin1」になっている。
ここから文字コード変更の作業へ・・・。
XAMPPによるセットアップでMySQLがインストールされているフォルダに「my.ini」がある。これをテキストエディタで開き、[mysqld]・[mysql]・[mysqldump]を修正。
●[mysqld]
・default-character-set=cp932を追加。
(文字コードの指定)
・skip-character-set-client-handshakeを追加。
(クライアント情報を無視して、サーバーのデフォルトのキャラクタセットを使用。「character-set-client-handshake 」と記述するとクライアント情報を無視しないようになる。)
参照:http://dev.mysql.com/doc/refman/5.1/ja/server-options.html
●[mysql]
・default-character-set=cp932を追加。
●[mysqldump]
・default-character-set=cp932を追加。
以上3箇所を修正した後、MySQLを再起動。再び「show variables like “char%”」で文字コードを確認すると画像のように変更されている。
そして、目的であったデータをdumpしたところ、文字化けは解消していました。
この件に関して、自分の環境にあった解決方法を見つけるまでかなり時間がかかりました・・・。
(※1)Windowsの文字コードは「シフトJIS」を拡張した「cp932」。①などはcp932によるもので、シフトJISでは存在しない。
| 月 | 火 | 水 | 木 | 金 | 土 | 日 |
|---|---|---|---|---|---|---|
| « 7月 | ||||||
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 | |||
- Akismet コメントスパム阻止の能力がすごいこと
- UTF-8で作成したテーブルデータがコマンドプロンプトで文字化け
- dumpしたテーブル情報が文字化け その対策に・・・
- カスタムフィールドの情報を取得する
- 特定のページのみサイドバーの内容を変化させる
- 横並びメニューにはdisplay: inline-block;で対応
- 投稿リビジョンを削除するプラグイン
- ウィジェット対応にする
- 関連記事を表示させるプラグイン【Simple Tags】
- 複数のサイドバーテンプレートをページごと使い分ける