サーバー移行時に、MySQLの文字化けで困った件。
なぜか、旧サーバーで、照合順序に、latin1_swedish_ciとutf8_generai_ciの両方が含まれていたため、PHPMyAdmin上で文字化けを起こしていました。
旧サーバーでは、その状態でも、ユーザー側のページは文字化けせずに表示されていたのですが、
それを、そのまま移行しても、新サーバーではなぜか文字化けして表示される。。
さんざん、ネットで調べたりして、ALTER TABLE〜で、BLOB形式に変換した後にUTF-8に変換させたり、さくらエディタという、latin1対応のエディタで無理やりSQL文をUTF-8に変換させたりしましたが、うまくいかず。(後者は、良いところまで行きましたが、一部、変換できない文字があり。)
2時間くらいはまって、結局、PHPでMySQLのクエリを実行する前に、その都度、
下記のSQL文を叩くようにすれば、治りました。
(UTF-8には変換せず、そのままlatin1の状態で移行。)
set character set latin1;
うわ〜、こんなにハマったのに、1行で治った。。。^^;
最初に記事を書いた日:2016/02/24
この記事をシェアする
関連記事