XAMPP設定(セキュリティー編)でXAMPPのセキュリティー設定を行ったので、次はPHPの文字コードの設定をします。PHPには.phpファイルを保存するときの文字コードとPHP内部の文字コードの2つを設定する必要があります。
php.iniファイルの設定
設定の前に
この設定は次のことに基づいています。
- XAMPPのインストール先はC:\XAMPP
- PHPの文字コードはすべてUTF-8
これ以外でPHPを動かしたいときはそれぞれの環境にあわせた設定を行なってください。
変更するファイル
変更が必要なファイルは以下になります。
C:\xampp\apache\bin\php.ini C:\xampp\php\php.ini C:\xampp\php\php5.ini C:\xampp\php\php4\php.ini C:\xampp\php\php4\php4.ini
これらのファイルすべてに同じ変更を加えます。
変更内容
このファイルをメモ帳などのテキストエディタで開きます。変更する箇所は以下の部分です。
これらの先頭の「;」を削除します。修正箇所の検索はテキストエディタの検索機能をつかって「mbstring」で検索すると早いです。間違ってほかの文字を消さないように注意しましょう。
文字コードをすべてUTF-8に変更するため以下の箇所を変更します。
変更前 : mbstring.internal_encoding = EUC-JP
変更後 : mbstring.internal_encoding = UTF-8
変更前 : mbstring.http_input = auto
変更後 : mbstring.http_input = UTF-8
変更前 : mbstring.http_output = SJIS
変更後 : mbstring.http_output = UTF-8
すべてのファイルを変更し、保存したらXAMPPのコントロールパネルでApacheを再起動してください。再起動しないと設定が有効になりません。
これでPHPの基本的な設定は終わりです。
各種設定の意味(PHPマニュアル参考)
以下の内容はPHPマニュアル「マルチバイト文字列関数」を参考にしています。
mbstring.language
mbstring で使用される言語設定のデフォルト値。 ここでは「Japanese」に設定。
mbstring.encoding_translation
入力される HTTP クエリに関して、 文字エンコーディング検出および内部文字エンコーディングへの変換を行う 透過的な文字エンコーディングフィルタを有効にします。
mbstring.internal_encoding
内部文字エンコーディングのデフォルト値を定義します。 PHPが動作する文字コードを指定します。UTF-8、EUC-JPは大丈夫ですが、SJIS(Shift-JISのこと)はダメ。ここでは「UTF-8」に設定。
mbstring.http_input
HTTP 入力文字エンコーディングのデフォルト値を定義します。 ここでは「UTF-8」。
mbstring.http_output
HTTP 出力文字エンコーディングのデフォルト値を定義します。 ここでは「UTF-8」。
mbstring.detect_order
文字コード検出順序のデフォルト値を定義します。 ここでは「UTF-8」。
mbstring.substitute_character
無効な文字を代替する文字を定義します。 ここでは「none」(文字を出力しない)。
mbstring.func_overload
シングルバイト対応の関数を mbstring 関数の対応する関数でオーバーロード (置換)します。ここでは「0」(オーバーロードしない)。




