- PR -

PHP(EUC)とMysql(SJIS)で文字化けしないようにするには?

1
投稿者投稿内容
トラジャ
ベテラン
会議室デビュー日: 2002/12/05
投稿数: 75
投稿日時: 2006-01-09 10:16
皆さんお世話になります。

PHP+MysqlでWebシステムを開発しています。

運用サーバーがFreeBSDのため、PHPとMysqlの文字コードはEUC-JPで設定しています。
また、テーブル名と列名には日本語名を使っています。
この設定での文字化けはありません。

これまで、Mysqlは運用サーバーで動かして、手元のWindowsマシンからMysqlに接続し、
EclipseでPHP開発を行っていました。

ところが、開発途中で、運用サーバーに接続できなくなったため、Mysqlも手元のWindowsマシンに移して、すべてをローカルで開発しなければならなくなりました。

データベースを内部データを含めてBSDからWindowsに移す段階で、WindowsのMysqlでは日本語のテーブル名や列名が文字化けするため、WindowsではMysqlの文字コードをSJISに変更しなければなりませんでした。(mysqldumpで作成したバックアップファイルの中身をSJISに変換して、WindowsのMysqlに復元したら文字化けせずにデータの移行ができました。)

そのため、現在は、PHP(EUC)でMysql(SJIS)となっています。

たぶん、PHP(EUC)でMysql(SJIS)なら、通常ですとmb_convert_encodingを使って、
クエリーの送信時と結果取得時に文字コード変換ロジックを埋め込むということになると思いますが、問題は、運用はBSDのMysqlとPHPに戻ることになるということです。

それで、できるだけスクリプト内で文字コードの変換ロジックを書かないでよいようにしたいのですが、MysqlかPHPの設定で、PHP(EUC)+Mysql(SJIS)を文字化けしないで動かす方法があれば教えていただけませんでしょうか?

よろしくお願いいたします。
1

スキルアップ/キャリアアップ(JOB@IT)