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:



