文字化け解決!MySQLの照合順序
MacBook Pro のローカル環境で a-blog が文字化けして使えず困っていました。作ってる私がそんなんじゃダメですよね。(^_^;
intel mac では、MySQLが4.1以降しかインストーラーが提供されておらず利用できません。一般的なレンタルサーバーでは 3.x や 4.0.x といったバージョンを利用しています。 4.1 になると大きく仕様が変わるので今まで動作しているシステムが動作しなくなる事でサーバー屋さんはバージョンアップできずにいます。多くのサーバーで動作する事を考え a-blog では、4.0以前をメインに作っています。どうやら、それが原因だったようです。
PHPの設定では何もコードの変換はしない状態(以下にphpinfoのmbstringの設定)で、my.conf は作ってない状態です。
Directive | Local Value | Master Value |
---|---|---|
mbstring.detect_order | no value | no value |
mbstring.encoding_translation | Off | Off |
mbstring.func_overload | 0 | 0 |
mbstring.http_input | pass | pass |
mbstring.http_output | pass | pass |
mbstring.internal_encoding | no value | no value |
mbstring.language | neutral | neutral |
mbstring.substitute_character | no value | no value |
a-blog はデータベース上は EUC で保存しています。a-blog のインストーラーからテーブルを作成すると文字が入力されるフィールドの照合順序が latin1_swedish_ci になっています。 これを ujis_japanese_ci にしてみたところ問題は解決し a-blog 側から入力したものも phpmyadmin 側から入力したものも文字化けせずに表示できるようになりました。
4.1 から文字コードがカラム毎に文字コードを設定できるようになってるという事かな? インストーラーも4.1の時には、ALTER DATABASE `DB名` DEFAULT CHARACTER SET ujis COLLATE ujis_japanese_ci をすればいいかと思いますので、ちょっと修正してみようと思います。
このところ、a-blog 1.x系がストップしていたのですが、ちょっと進める事ができそうです。 a-blog 1.6 は出る事になるんじゃないかと思いますが、1.7 は作られる事は無いかと思います。 まずは、1.53 のバグフィックス版を近日リリースしたいと思っております。
早く 2.0 をお見せしたいところですね。 (^_^) 結構、出来てるんですよ。