がくぞうのアイデアブログ

思いついたアイデア、本からの学びや気づきを公開していきます。

【スポンサーリンク】

XAMPP1.7.7のphpMyAdminを日本語化対応する方法

【スポンサーリンク】

最新バージョンのXAMPP1.7.7をインストールしました。

XAMPP1.7.7の環境

Apache 2.2.21
MySQL 5.5.16
PHP 5.3.8
phpMyAdmin 3.4.5
FileZilla FTP Server 0.9.39
Tomcat 7.0.21 (with mod_proxy_ajp as connector)

楽天ランキング
総合1位

楽天ランキング
総合2位

楽天ランキング
総合3位

phpMyAdmin上にて日本語が文字化け

1.MySQL上にデータベースおよびテーブルを作成(UTF-8

2.PHPからMySQLへデータを追加するスクリプト作成・実行
 phpMyAdmin上にてデータが追加されているか確認したところ、
 日本語が文字化けして登録されている。

3.PHPからMySQLに保存されているデータを取得して表示
 phpMyAdmin上で日本語が文字化けしていたデータが
 問題なく日本語で表示されている。

4.phpMyAdmin上で、データを追加

5.phpMyAdmin上で、登録されているデータを表示
 phpMyAdminから登録したデータは日本語が問題なく表示されている。
 しかし、PHPから登録したデータは文字化けしている。

6.PHPからMySQLに保存されているデータを取得して表示
 PHPから登録したデータは日本語が問題なく表示されている。
 しかし、phpMyAdminから登録したデータが今度は文字化けしている。

楽天ランキング
男性20代1位

楽天ランキング
男性20代2位

楽天ランキング
男性20代3位

MySQLの日本語化対応(UTF-8)に悪戦苦闘

PHPMySQLの日本語化対応の記事を探して、
MySQLの設定ファイル(C:\xampp\mysql\bin\my.ini)に
日本語化対応(UTF-8)を追加すると今度はMySQLが起動しなくなった・・・。

追加した設定は以下。
――――――――――――――――――――――――
[mysqld]
default-character-set = utf8

[mysqldump]
default-character-set = utf8

[mysql]
default-character-set = utf8
――――――――――――――――――――――――

MySQLのログ(C:\xampp\mysql\data\mysql_error.log)を確認したところ、
以下のメッセージが表示されていた。
――――――――――――――――――――――――――――――――――――――
[ERROR] mysql\bin\mysqld.exe: unknown variable 'default-character-set=utf8'
――――――――――――――――――――――――――――――――――――――

MySQLの設定ファイル(C:\xampp\mysql\bin\my.ini)から以下を
削除したら、MySQLが起動するようになった。
――――――――――――――――――――――――
[mysqld]
default-character-set = utf8
――――――――――――――――――――――――

楽天ランキング
男性30代1位

楽天ランキング
男性30代2位

楽天ランキング
男性30代3位

MySQLの日本語化対応(UTF-8)方法が見つかる

以下の記事を見つけ、試したところようやく日本語化できるようになりました。
MySQL 5.5.8で,UTF-8を利用する方法

MySQLのバージョン5.1までとは異なり,
clientセクションとmysqldセクションでは設定名が異なるので注意

具体的な対応方法は、
MySQLの設定ファイル(C:\xampp\mysql\bin\my.ini)に以下を追加。
――――――――――――――――――――――――
[mysqld]
character-set-server = utf8
――――――――――――――――――――――――

PHPからMySQLへ登録したデータが、
phpMyAdminPHPの両方で日本語が正しく表示されました。

また、phpMyAdminからMySQLへ登録したデータが
phpMyAdminPHPの両方で日本語が正しく表示されました。

やっとすっきりできました。

楽天ランキング
男性40代1位

楽天ランキング
男性40代2位

楽天ランキング
男性40代3位