やっどー

Discuss Web, Social, Linux Technologies

<MySQL><PHP>MAMP 文字化け対策

MAMPにおけるMySQL,PHPUTF-8変更方法を記します。

実行環境

MySQL

確認

mysql> show variables like 'char%';
+--------------------------+--------------------------------------------+
| Variable_name            | Value                                      |
+--------------------------+--------------------------------------------+
| character_set_client     | utf8                                       |
| character_set_connection | utf8                                       |
| character_set_database   | latin1                                     |
| character_set_filesystem | binary                                     |
| character_set_results    | utf8                                       |
| character_set_server     | latin1                                     |
| character_set_system     | utf8                                       |
| character_sets_dir       | /Applications/MAMP/Library/share/charsets/ |
+--------------------------+--------------------------------------------+
8 rows in set (0.00 sec)

変更方法

  1. 設定ファイルをコピー
$ cp /Applications/MAMP/Library/support-files/my-large.cnf /Applications/MAMP/conf/my.cnf
  1. 設定ファイルを下記の通りに編集
[mysqld]項目に2行追加
character-set-server = utf8
skip-character-set-client-handshake
  1. MySQLを再起動

再確認(設定反映を確認)

mysql> show variables like 'char%';
+--------------------------+--------------------------------------------+
| Variable_name            | Value                                      |
+--------------------------+--------------------------------------------+
| character_set_client     | utf8                                       |
| character_set_connection | utf8                                       |
| character_set_database   | utf8                                       |
| character_set_filesystem | binary                                     |
| character_set_results    | utf8                                       |
| character_set_server     | utf8                                       |
| character_set_system     | utf8                                       |
| character_sets_dir       | /Applications/MAMP/Library/share/charsets/ |
+--------------------------+--------------------------------------------+
8 rows in set (0.00 sec)

PHP

変更方法

  1. 設定ファイルを5箇所編集
$ vim /Applications/MAMP/bin/php/php5.4.10/conf/php.ini
1)default_charset
(変更前);default_charset = "iso-8859-1"
(変更後)default_charset = "UTF-8"
2)mbstring_language
(変更前);mbstring.language = Japanese
(変更後)mbstring.language = Japanese
3)mbstring.internal_encoding
(変更前);mbstring.internal_encoding = EUC-JP
(変更後)mbstring.internal_encoding = UTF-8
4)mbstring.http_input
(変更前);mbstring.http_input = auto
(変更後)mbstring.http_input = auto
5)mbstring.detect_order
(変更前)mbstring.detect_order = auto
(変更後)mbstring.detect_order = SJIS,EUR-JP,JIS,UTF-8,ASCII
  1. MAMPを再起動