CakePHP: データベースの文字化け
CakePHPのdatabase.phpのdefaultのencodingの設定がなぜかコメントアウトされていて、そのままだとデータベースに突っ込まれるエンコードが「UTF-8 Unicode via latin 1」というものでした。
そのコメントアウトを外せば、その後はUTF-8で保存、呼び出しされるようになるのですが、逆にそうなると昔のデータが文字化けしてしまいます。
そこでmysqlのデータを書き出してUTF-8に変換するという作業が必要になった訳ですが、僕の取ったやり方を残しておきます。
1: Sequel ProというMac OS Appを使ってDatabase > View Using EncodingからUTF-8 Unicode via latin 1を選択
2: File > Exportでcsvとして出力
3: Sublime Text 2で開いて別名で保存
4: Sequel Pro で元のtableを選択した状態でFile > Importで先ほど別名で保存したcsvをReplaceでインポート。
以上で上手くUTF-8で保存されます。ポイントは3で、2で書き出したままのファイルをインポートしても、UTF-8で書き出されているわけではないので、同じ状態となってしまいます。
Web制作者のためのSublime Textの教科書 今すぐ最高のエディタを使いこなすプロのノウハウ
- 作者: 上野正大,杉本淳,前川昌幸,森田壮,こもりまさあき
- 出版社/メーカー: インプレスジャパン
- 発売日: 2014/03/20
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る