こんにちは、NAGAです。
「XAMPPをインストールする方法」でインストールをしましたが、
XAMPPをインストールしたあと、phpMyAdminで日本語を書き込んだら「???」と文字化けしました。
MySQLとPHPの設定を変更して文字化けを解消しましたので、これについて解説します。
それでは、行きましょう。
目次
MySQLの文字化け解消方法
my.iniを修正
my.iniを開く
「XAMPP ControlPanel」でMySQLの「Config > my.ini」をクリックします。
[client]の修正
「default-character-set」を検索して、下記の内容に修正します。
[client]
# The MySQL server
#default-character-set=utf8mb4
default-character-set=utf8
[mysqld]の修正
「character_set_server」と「skip-character-set-client-handshake」を検索して、下記の内容に修正します。
## UTF 8 Settings
#init-connect=\'SET NAMES utf8\'
#collation_server=utf8_unicode_ci
#character_set_server=utf8
#skip-character-set-client-handshake
character_set_server=utf8
skip-character-set-client-handshake
MySQLを起動
「XAMPP ControlPanel」でMySQLを「Start」します。
DBの作り直し
phpMyAdminを開く
phpMyAdminを開きます。(ApacheもStartしておきます)
MySQLのAdminボタンをクリックします。
DBを削除する
既に作ってあるテーブルには反映されないみたいなので、データベースごと作り直します。
左側のDB「test」をクリックして、操作ボタンをクリックします。
操作タブ内にて、「データベースを削除する(DROP)」をクリックします。
DBを新規作成する
データベース名「test」と入力して、プルダウン「utf8_general_ci」に変更して作成ボタンをクリックします。
UTF8の物を選びましょう。
このあとは、文字コードは意識せずテーブルを作れます。
文字化け解消の確認
phpMyAdminの「挿入」タブからレコードを登録します。
「山田太郎、東京都」で登録しましたが、文字化けは起きていないようです。
PHPの文字化け解消方法
XAMPPをインストールするだけでは、PHPファイルをアップした時に日本語が文字化けを起こすことがあります。
そんな時は、XAMPPの「php.ini」を設定する必要があります。
php.iniを修正
php.iniを開く
「XAMPP ControlPanel」でApacheの「Config > PHP(php.ini)」をクリックします。
文字コードの設定
文字化けを起こさないように文字コードを「UTF-8」に設定します。
「default_charset」を検索して、下記の内容に修正します。
; PHP's default character set is set to UTF-8.
; http://php.net/default-charset
default_charset="UTF-8"
タイムゾーンの設定
タイムゾーンを日本に設定します。
[Date]を検索して、下記の内容に修正します。
[Date]
#date.timezone=Europe/Berlin
date.timezone = Asia/Tokyo
日本語利用のためのマルチバイト設定
日本語を使えるようにマルチバイトを設定します。
[mbstring]で検索して、下記の内容に修正します。
[mbstring]
; language for internal character representation.
; This affects mb_send_mail() and mbstring.detect_order.
; http://php.net/mbstring.language
;mbstring.language = Japanese
mbstring.language = Japanese
; Use of this INI entry is deprecated, use global internal_encoding instead.
; internal/script encoding.
; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*)
; If empty, default_charset or internal_encoding or iconv.internal_encoding is used.
; The precedence is: default_charset < internal_encoding < iconv.internal_encoding
;mbstring.internal_encoding =
mbstring.internal_encoding = UTF-8
まとめ
いかがだったでしょうか。
今回はXAMPPインストール後のMySQL、PHPの文字化け回避方法について解説しました。
XAMPP、MySQL、PHPは海外で作られたので、日本語に対応する設定が必要となります。
パソコン環境が変わると毎回設定するので、XAMMP用の日本語パッチなどがあれば良いなと思いました。
それでは、以上です。