Tag Archives: 文字コード

XAMPPのMySQLで正しくUTF-8を使えるようにする

このエントリーをはてなブックマークに追加
はてなブックマーク - XAMPPのMySQLで正しくUTF-8を使えるようにする
Share on Facebook

XAMPP 1.7.3 に入っているMySQLは、デフォルト設定だと文字コード指定が適当なので、普通に使っていると文字化けすることがあります。

コマンドプロンプトから下記を実行すると現在の文字コード設定が確認できます。

[c:\]$ c:\xampp\mysql\bin\mysql -uroot

mysql> SHOW variables LIKE '%char%';
+--------------------------+--------------------------------+
| Variable_name            | Value                          |
+--------------------------+--------------------------------+
| character_set_client     | latin1                         |
| character_set_connection | latin1                         |
| character_set_database   | latin1                         |
| character_set_filesystem | binary                         |
| character_set_results    | latin1                         |
| character_set_server     | latin1                         |
| character_set_system     | utf8                           |
| character_sets_dir       | C:\xampp\mysql\share\charsets\ |
+--------------------------+--------------------------------+
8 rows in set (0.00 sec)

これをどうにかするため、c:\xampp\mysql\bin\my.ini を下記のように変更します。

# [client]ブロックに下記の行を追加する
default-character-set=utf8

# [mysqld]ブロックに下記の行を追加する
default-character-set=utf8
skip-character-set-client-handshake

これでMySQLを再起動すると、文字コード設定がUTF-8になります。

[c:\]$ c:\xampp\mysql\bin\mysql -uroot

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       | C:\xampp\mysql\share\charsets\ |
+--------------------------+--------------------------------+
8 rows in set (0.00 sec)

参考

PHPUnitで文字コード関連のWarningが出るとき

このエントリーをはてなブックマークに追加
はてなブックマーク - PHPUnitで文字コード関連のWarningが出るとき
Share on Facebook

XAMPP環境でPHPUnitを使おうと思ったら以下のような警告が出ました。(テスト自体は実行できます)

PHPUnit 3.4.15 by Sebastian Bergmann.


Warning: DOMElement::setAttribute(): string is not in UTF-8 in C:\xampp\php\PEAR\PHPUnit\Util\Log\JUnit.php on line 307

Warning: DOMElement::setAttribute(): string is not in UTF-8 in C:\xampp\php\PEAR\PHPUnit\Util\Log\JUnit.php on line 421
I
Warning: DOMDocument::saveXML(): output conversion failed due to conv error, bytes 0x82 0xC4 0x82 0xB7 in C:\xampp\php\PEAR\PHPUnit\Util\Log\JUnit.php on line 474


Time: 1 second, Memory: 5.25Mb

OK, but incomplete or skipped tests!
Tests: 1, Assertions: 0, Incomplete: 1.

いろいろ調べた結果、ソースディレクトリに日本語が使われているのが問題でした。このケースでは「c:\temp\てすと」なんてディレクトリに入れていました。

開発のとき日本語ディレクトリを使うのはやめましょう。