きちんと文字コードの設定をしたはずなのに、PHPのプログラムが以下のように文字化けしてしまうことはありませんか?
原因は設定した文字コードと、ファイルの文字コードの設定が合っていない場合がほとんどです。
一般的な方法と、私自身がいつも行っている簡単で100%確実に文字化けを直す方法をご紹介します。
(ここではUTF-8での例をご紹介しています。)
header関数で文字コードを指定する
コードの先頭行で文字コードを指定するheader関数を実行することで、文字化けを回避できます。
1 2 3 4 |
<?php header('Content-Type: text/html; charset=UTF-8'); echo '文字化けしない'; ?> |
ただし、header関数の前に何かしら出力してしまうと、エラーとなるため、何も出力しないようにしましょう。
参考:PHPのheader関数でリダイレクトする方法とよくあるエラー
php.iniで文字コードの設定をする
php.ini
で以下のように記述します。
1 |
Default_charset = "utf-8" |
もっと簡単な方法で文字化け解消したい!
私が文字化けした時に行っている、今のところ回避率100%の技をご紹介します。
phpの文字化けをテキストエディタ「秀丸」で回避
該当のPHPファイルを、テキストエディタの「秀丸」で、エンコードを指定し保存することで、これまでに100%文字化けを回避しています。
- まず、秀丸で文字化けしたPHPファイルを開きます。
- ファイル(F)からエンコードの種類(D)で文字コードの一覧が表示されます。
- 文字化けしたファイルの一覧を見ると、大抵「日本語(Shift-JIS)」などが選択されている場合が多いです。これでは文字化けして当然ですね。
- 一覧から「Unicode(UTF-8)」を選択します。
- エンコードの切り替えダイアログが出るので、「内容を維持したまま適用(K)」を選択
- あとは保存し、そのファイルをFTPでUPすれば文字化けは解消されているはずです。
私の環境では前述したphp.ini
の設定もしていますが、やはり文字化けすることがあります。
かと言って、文字化けのためにわざわざheader関数を追加するのも手間だし、抵抗があったため、この方法で文字化けを回避しています。
phpでの文字化けに悩まされた時に試してみるとよいでしょう。
この記事通りに、コードを足したら
無事文字化け直りました。
ありがとうございました。
コメントありがとうございます。
お役に立てたようでなによりです。
これからも分かりやすい記事を作成していきますので今後共よろしくお願いいたします。
ありがとうございます。秀丸の設定で直るとは思いませんでした。助かりました^^
コメントありがとうございます。
文字化けが直らないときはいつもこの方法で回避してました。
今後ともよろしくお願いいたします。
お伺いいたします。
文字化けのため、秀丸をインストールして、ファイルを開こうとしたのですが、htmlファイルは開くのですが、phpファイルが消えてしまうのは、なぜでしょうか?
拡張子が.phpのファイルが消えるということでしょうか?
ファイルは普通に開けば消えることはないかと思います。
とても役に立つ記事でした
助かりました
ありがとうございます
お役に立てて何よりです。今後ともよろしくお願いいたします。