2007年04月07日

MySQLの文字化けを直す

MySQLで文字化けで解決したかに見えた文字化け問題ですが、テストデータベースから本番データベースに移行した際に、再び、「?????」の表示になった。

どうも、データベースを作成した際の文字コードが違っていたらしい。

コマンドラインから mysql を上げ、以下のコマンドを実行。

show create database データベース名;

テストデータベースは、DEFAULT CHARACTER SET utf8 と表示されるが、本番データベースは、DEFAULT CHARACTER SET latin1 になっていた。そもそもデータベースを作成するところが違っていた。

phpMyAdminでデータベースを作る際の指定がなってなかった。
照会順序を、utf8_general_ci というやつにしないといけない。

まずは、phpMyAdminの「操作」タブの一番下のところで、照会順序をutf8_general_ciにする。

テーブルを作成する際、テキスト系の型(textとか)の照会順序は、デフォルトでこの照会順序が使われるみたいです。

そこで、テーブルの列の照会順序も変更します。そもそも、ここがutf8_general_ciになっていないことが、文字化けの根源です。ここがutf8_general_ciになってないと、いくら set names utf8 を指定しても文字化けは直りません。

それか、テーブルをcreateする際に、しっかりと、

DEFAULT CHARSET=utf8

と、文字コードを指定することです。

2007年04月07日 16:07 | Webシステム


トラックバック

このエントリーのトラックバックURL:

コメント

コメントしてください




保存しますか?