MAMPのMySQL 日本語文字化けで悩む人に捧ぐ!最新版

ハマりましたよ、これ。どっぷりと。
PHPからMySQLに日本語データを保存すると「???」とか、象形文字みたくなってしまうという現象。

たくさん対策記事はあるんですけど、ありすぎて逆にどれを信じていいかわからず(バージョンが違ったりもするし)、
手を変え品を変えいじっているうちに半日たってしまいましたorz

モウコレ以上犠牲者ヲ出シタクナイ。。。

そんな思いから、やってみて効果のあったことをここに記録します。

MAMPのバージョンは3.0.7.3 、
MySQLは5.5.38を使用しています。

この状態からのスタートです↓。
だめ

my.cnfファイルを新規作成

/Applications/MAMP/Library/support-filesに
my-large.cnf
my-midium.cnf
my-small.cnf
があります。

これのどれか(どれでもいい)をリネームしてmy.cnfを作る。
※.confではなく.cnf!←大事
そして/Applications/MAMP/conf/に配置。

あとはこのサイトに従って、my.cnf内にコードを追加。
(削除とかせずに、単に追加するだけです。)

これちょっとめんどくさい作業なんですが、ここを乗り越えないことには先へ進めません。
踏ん張りどころです。

データベースの照会順序をutf8_general_ciにする

照会順序?そんなの自分には関係ないぜ。
私も初めはそう思ってましたが、実はあるんですねこれが。

照会順序って言葉が気になる人はこのへんのサイト見ておいてくださいな。

とにかくutf8_general_ciにするんです。
MAMPサイトのphpMyAdminから操作するのが楽かと思います。以下を参考にしてください。
参考サイト1
参考サイト2

それでも動かねえっ!!って方へ

一旦落ち着いてこちらのサイトを御覧ください。

そう。そういうことです。
テーブルを作ったときはlatin1だったので、テーブル自体はutf-8になっていない。。。

( ゚∀゚)・∵. ガハッ!!

お疲れ様でした

これで無事に日本語をDBに保存できます。
めでたしめでたし。

成功

Pocket