好きなものを語り尽くす

webシステム、プログラミング、映画、音楽、yutube、楽器、ガレージバンド、将棋など

サイトの文字化けを修復する

f:id:m-watari:20141112211731p:plain

ホームページも最近はCMSが主流になり、データベース(mysqlなど)なるものがホームページの情報を保存しています。

で、表示方法、抽出方法、格納方法が間違っていると文字化けしてしまいます。

最近多いのは、【?????????】をよく見かけます。

パソコンのテキストエディタなどもそうですが、文字コードというものがあります。

そして、その文字コード設定がwebシステムとなると、

プログラミング言語設定(PHPなど)
・DB(mysqlなど)設定
・表示ページの設定

などがすべて同じ文字コードを使用する必要があり、やっかいなのが、多少違っていてもなんとかちゃんと表示されることが多いのです。

すると、何年かホームページを運用し、システム変更、サーバー変更等がきっかけで文字化けしてしまいます。

上記3点全て、チェックしてもダメなときがあります。

 

さて、今回の修復ですが、サイトの更新システムを改修した時に、プログラムは間違いのだが、新たに入れたデータが文字化けしたとのこと、

 

ここからサイトの文字化け修復作業

作業1

サーバーに設置されている、phpMyAdminにてデータベースの中身を見てみると、アラビア文字になっていました。

 

まずはデータベースの中身をアラビア文字ではなく、本体の文字(日本語)にしてあげなくては行けません。

 

ということで、データベース管理ソフト(今回はNavicat)にてデータベースの中身が日本語で表示されるように文字コードの設定をいろいろ変えて接続してみます。

今回は、Latainでした。

 

そのデータを、Sqlファイルにエクスポートして、phpMyAdminにて新たに書き出したファイルをインポートします。

今回は、ウェブサイトはクローズ状態でしたので、一旦全てのデータベースを削除してsqlファイルをインポートしました。

 

すると、サイト自体文字化けしてしまいます。

 

作業2

そこで、サーバー側のPHP設定を確認します。

phpinfo() 

にて確認すると、default-character-set=ujis

だったので、php.iniをつくり、default-character-set=utf8

にします。

 

今回はこれで完了しました。

めでたし。