XAMPPの文字化けをphp.iniの設定で直す方法【初心者向け】
XAMPP(ザンプ)でPHPファイルが文字化けした時に修正する方法を初心者向けに解説した記事です。修正するには、「php.ini」というファイルの設定を変える必要があります。今回は、文字コード、タイムゾーン、マルチバイト設定を扱います。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
開発環境のXAMPPをインストールするだけでは、PHPファイルをアップした時に日本語が文字化けを起こすことがあります。
そんな時は、XAMPPの「php.ini」を設定する必要がありますので対策しておきましょう。
今回は初心者向けに設定方法を紹介します。なお、今回の例ではMacのPCを使いますが、やり方はWindowsでも同じです。
なお、今回の記事の内容は動画でもご覧いただけます。
テキストよりも動画の方が理解しやすいという場合はぜひご覧ください。
php.iniを開く
XAMPPのフォルダから XAMPP > etc にある「php.ini」というファイルを使います。
このファイルをテキストエディタで開いてください。
この用に表示されるので、テキストエディタ上で設定を変更していきます。

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

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

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

では、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の設定で直す方法については以上です。
PHPをさらに勉強したい場合は、PHPで構文チェックを行う方法、PHPとHTMLをまとめてコメントアウトする方法についても合わせて読んでみてください。

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

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

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

そうなんだ。後、作成したファイルの文字コードと、表示するように指定した文字コードを確認したいね。php.iniの設定が終ったら、apacheを再起動するんだ。そうすれば設定が反映されるよ。
PHPを勉強していて、
・もっと効率的に勉強したい
・誰かに聞きながら学びたい
・自分でWebサービスを作りたい
と思ったことはないでしょうか?
そんな方のために、TechAcademyではオンラインブートキャンプPHP/Laravelコースを提供しています。
現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、オリジナルWebサービスを開発することが可能です。
独学に限界を感じている場合はご検討ください。

プログラミングを独学していて、このように感じた経験はないでしょうか?
- ・調べてもほしい情報が見つからない
- ・独学のスキルが実際の業務で通用するのか不安
- ・目標への学習プランがわからず、迷子になりそう
テックアカデミーでは、このような
学習に不安を抱えている方へ、現役エンジニア講師とマンツーマンで相談できる機会を無料で提供
しています。
30分間、オンラインでどんなことでも質問し放題です。
「受けてよかった」と感じていただけるよう
厳しい試験を通過した講師
があなたの相談に真摯に向き合います。
「ただ気になることを相談したい」
「漠然としているがプロの話を聞いてみたい」
こんな気持ちでも大丈夫です。
無理な勧誘は一切ありません
ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)