よくある事ですね。
やれやれ、文字コードの設定をせねばならぬ。
後々、さくらのレンタルサーバーにアップするつもりなので、そちらの文字コードに合わせようかと思う。
さくらのレンタルサーバーの仕様
http://support.sakura.ad.jp/manual/rs/tech_server.html
これによるとPHPもMySQLもEUC-JP(ujis)がデフォルトのようです。
よし、じゃあやるか。まずはMySQLから。
my.cnfの置き場所を調べる。
$ /usr/local/mysql/bin/mysql --helphelpの中ほどくらいに、下記の記述が見つかる。
Default options are read from the following files in the given order: /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnfつまりこの4つのどこかにあればいいらしい。上から順に読み込まれるみたい。
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf今回は/etc/my.cnfに置く事にした。
/etc/my.cnfが存在しなかったので、下記の場所からコピーして編集。
$ sudo cp /usr/local/mysql/my.cnf /etc/ $ sudo vi /etc/my.cnf[mysqld]の下に追加。
# MySQLサーバーの文字コードをEUC-JP(ujis)に設定 character-set-server = ujis # クライアント側の文字コードが設定されていない場合はサーバー側の文字コードを使用 skip-character-set-client-handshakeMySQLを再起動。
設定が反映されているか調べる
$ /usr/local/mysql/bin/mysql -u root -p mysql> show variables like 'char%';結果
character_set_system以外はujisになっていますね!
character_set_systemはutf8のままでいいらしい。
次はPHPの文字コードを設定する。
こちらはMySQL接続後に下記のコードを入れるだけ。
mysqli_set_charset($db, "ujis");あとはデータベースのテーブルを作り直したりするなりPHPのソースコードをEUC-JPで保存するなりなんなり。
私はこれで止めました。(文字化けを)
0 件のコメント :
コメントを投稿