XAMPPの文字化けをphp.iniの設定で直す方法【初心者向け】

XAMPP(ザンプ)でPHPファイルが文字化けした時に修正する方法を初心者向けに解説した記事です。修正するには、「php.ini」というファイルの設定を変える必要があります。今回は、文字コード、タイムゾーン、マルチバイト設定を扱います。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が1,000以上あります。

開発環境のXAMPPをインストールするだけでは、PHPファイルをアップした時に日本語が文字化けを起こすことがあります。

そんな時は、XAMPPの「php.ini」を設定する必要がありますので対策しておきましょう。

 

今回は初心者向けに設定方法を紹介します。なお、今回の例ではMacのPCを使いますが、やり方はWindowsでも同じです。

 

なお、今回の記事の内容は動画でもご覧いただけます。
テキストよりも動画の方が理解しやすいという場合はぜひご覧ください。

 

php.iniを開く

XAMPPのフォルダから XAMPP > etc にある「php.ini」というファイルを使います。

phpini

 

このファイルをテキストエディタで開いてください。

テキストエディタ

この用に表示されるので、テキストエディタ上で設定を変更していきます。

 

20160620

 

php.iniっていうのは、phpに関する設定ファイルですか?

 

20163020-2

 

そうなんだ。今回は文字コード関連なんだけど、外部のファイルを読み込める設定があったり、PHPの動作時間を30秒以上にする設定なども可能だよ。

 

20160620

 

それは面白そうですねー。

 

20163020-2

 

では、php.iniファイルを開いてみよう!

 

php.iniを設定する

今回は3つの設定を行います。

 

文字コードの設定

まずは文字化けを起こさないように、文字コードを設定します。ここでは文字コードを「UTF-8」に設定します。

テキストエディタ上で「default character」で検索して、下記の内容に修正してください。

; PHP's default character set is set to empty.
; http://php.net/default-charset
;default_charset = "iso-8859-1"
default_charset = UTF-8

 

タイムゾーンの設定

タイムゾーンを日本に設定します。

同じく、テキストエディタ上で「[Date]」で検索して、下記の内容に修正してください。

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
;date.timezone=Europe/Berlin
date.timezone=Asia/Tokyo

 

日本語利用のためのマルチバイト設定

最後に、日本語を使えるようにマルチバイトを設定します。

テキストエディタ上で「[mbstring]」で検索して、下記の内容に修正してください。

[mbstring]
; language for internal character representation.
; http://php.net/mbstring.language
;mbstring.language = Japanese
mbstring.language = Japanese

; internal/script encoding.
; Some encoding cannot work as internal encoding.
; (e.g. SJIS, BIG5, ISO-2022-*)
; http://php.net/mbstring.internal-encoding
;mbstring.internal_encoding = EUC-JP
mbstring.internal_encoding = UTF-8

 

全て修正できたら、テキストエディタで保存をしてファイルを閉じてください。

これで設定は完了です。XAMPPを実際に使って確かめてみてください。

 

[PR] PHPのプログラミングで挫折しない学習方法を動画で公開中

おわりに

XAMPPの文字化けをphp.iniの設定で直す方法については以上です。

 

20160620

 

タイムゾーンをAsia/Tokyoに文字コードをUTF-8にすればOKですか?

 

20163020-2

 

そうそう。タイムゾーンは設定しないでやってみるとわかるんだけど、時刻の基準が設定した側になって、ずれるんだ。文字コードをWebではUTF-8が標準になってるんだ。

 

20160620

 

文字コードは種類が多いですね。日本語で3種類ぐらいあるんですか?

 

20163020-2

 

そうなんだ。後、作成したファイルの文字コードと、表示するように指定した文字コードを確認したいね。php.iniの設定が終ったら、apacheを再起動するんだ。そうすれば設定が反映されるよ。

 

PHPを勉強していて、
・もっと効率的に勉強したい
・誰かに聞きながら学びたい
・自分でWebサービスを作りたい
と思ったことはないでしょうか?

そんな方のために、TechAcademyではオンラインブートキャンプPHP/Laravelコースを提供しています。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間でオリジナルWebサービスを開発することが可能です。

独学に限界を感じている場合はご検討ください。