MySQLの文字化けを直す

| コメント(0) | トラックバック(0)

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

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

トラックバック(0)

トラックバックURL: http://www.karakuriya.biz/mt/mt-tb.cgi/607

コメントする

ウェブページ

Powered by Movable Type 4.261

このブログ記事について

このページは、H.Imaiが2007年4月 7日 16:07に書いたブログ記事です。

ひとつ前のブログ記事は「MySQLで文字化け」です。

次のブログ記事は「SNSとのセッションの競合 PHPSESSIDの変更」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。