Q.PHPで作成したアプリケーションが文字化けします。
PHPアプリケーションで文字化けが発生する理由にはいくつかの原因が考えられます。次の点について行ってください。
WebサーバのPHPマルチバイト設定が適切でない
PHPアプリケーションよりブラウザに出力する文字コードと、弊社コントロールパネルのWeb機能「文字エンコーディング」-[表示コード]で指定した文字コードが異なる場合に文字化けが発生します。
PHPアプリケーションよりブラウザ に出力する文字コード |
文字化け回避方法 |
---|---|
UTF-8 | コントロールパネルのWeb機能「文字エンコーディング」-[表示コード]で 「UTF-8」を表示を選択 |
EUC-JP | コントロールパネルのWeb機能「文字エンコーディング」-[表示コード]で 「EUC-JP」を表示を選択 |
Shift_JIS | コントロールパネルのWeb機能「文字エンコーディング」-[表示コード]で 「Shift_JIS」を表示を選択 |
弊社コントロールパネルのWeb機能「文字エンコーディング」-[表示コード]で、その文字コードに対して最適なPHP環境設定([output_buffering][output_handler]など)が行われますが、PHPプログラム内で文字コードの設定を行ったり、PHPプログラムで強制的に関数で文字変換したのちブラウザに出力したり、いろいろなケースの場合があります。この場合は、弊社コントロールパネルのWeb機能「文字エンコーディング」-[表示コード]で「カスタム」をご指定いただき、文字エンコーディングに関するPHP環境設定をお客様側で設定を行ってください。
PHPファイル(~.php)の文字コードが適切でない
PHPファイル(~.php)の文字コードは、UTF-8、もしくは、EUC-JPとなっている必要があります。また、それぞれの文字コードの場合において、サーバーのPHPマルチバイト設定を適切に指定する必要があります。
PHPファイルのプログラムコードの文字コード | 文字化け回避方法 |
---|---|
PHPファイルをUTF-8として保存 | コントロールパネルのWeb機能「文字エンコーディング」-[表示コード]で 「UTF-8」を表示を選択 |
PHPファイルをEUC-JPとして保存 | コントロールパネルのWeb機能「文字エンコーディング」-[表示コード]で 「EUC-JP」を表示を選択 |
PHPファイルをShift_JISとして保存 ※Windowsのメモ帳などでPHPの編集を行うと自動的にこのケースとなります |
(弊社サポート外) PHPファイルの文字コードをShift-JISをとして作成した場合、WebサーバのPHP文字エンコーディングの設定(マルチバイト設定)をいくら変更しても文字化けが解消されない可能性があります。 |
PHPファイル(~.php)が、Webサーバへアップロード時に期待の文字コードになっていない
PHPファイル(~.php)のプログラムコードの文字コードは、UTF-8、もしくは、EUC-JPとなっている必要がありますが、文字コード変換の方法として、下記の2つの方法があります。このPHPファイルのプログラムコードの文字コード変換が適切でない場合に文字化けが発生いたします。
- ファイル編集ソフト(テキストエディタ)で任意の文字コードを指定して保存する方法
※ファイル保存時に文字コードを変更する - FTPクライアントソフトで任意の文字コードを指定してファイル転送を行う
※転送時に文字コードを変更する
例えば、すでにEUCで保存されているPHPファイルをFTPソフトでもEUCへの文字コード変換を指定してファイル転送(FTPアップロード)を行うと、2重に文字コード変換を行ってしまうため、サーバーへ転送されたファイルの内容が文字化けした状態となってしまいますので、PHPファイルの文字コード変換を2重に行わないようご注意下さい。
ファイル編集ソフトでの 文字コード変換 |
FTPクライアントソフトでの文字コード変換 |
---|---|
ファイル編集ソフトで文字コードを変換する | FTPクライアントソフトでは、ファイルの文字コード変換を行わずにファイル転送を行う |
ファイル編集ソフトで文字コードを変換しない | 必要があれば、 FTPクライアントソフトでは、ファイルの文字コード変換を指定してにファイル転送を行う |
- フリーソフトのテキストエディタ「TeraPad」 (Windows)
- シェアウェアソフトのテキストエディタ「秀丸エディタ」 (Windows)
- 市販オーサリングソフト「Adobe Dreamweaver」 (Windows/Machintosh)
ご参考 FTPアップロード時に「EUC」に文字変換してファイル転送可能なFTPソフト
- フリーソフトのFTPソフト「FFFTP」 (Windows)