2010年11月19日

[mysql 15431] EUC-JPの一部の文字がphpMyAdminで化ける

こんには、鈴木と申します。

FreeBSD8.1 + mysql-server-5.5.4 + phpMyAdmin-3.3.4です
MySQLをEUC-JPで使いたいので
ports から WITH_CHARSET=ujis WITH_XCHARSET=all でインストール。

# cat /var/db/mysql/my.cnf
[mysqld]

character-set-server=ujis
skip-character-set-client-handshake

mysql> SHOW VARIABLES LIKE 'character_set%';
+--------------------------+----------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------+
| character_set_client | ujis |
| character_set_connection | ujis |
| character_set_database | ujis |
| character_set_filesystem | binary |
| character_set_results | ujis |
| character_set_server | ujis |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/share/mysql/charsets/ |
+--------------------------+----------------------------------+
8 rows in set (0.00 sec)

上記の環境で

# cat test-euc.sql
CREATE DATABASE `test` ;
USE `test`;
CREATE TABLE `sample` ( `moji` text ) CHARSET=ujis;
INSERT INTO `sample` VALUES ('普'),('通'),('の'),('文'),('字'),('〓'),('〓'),('〓');

# mysql -p"PASSWORD" < test-euc.sql

としてtestデータベースにsampleテーブルにEUC-JPで
普通の文字と機種依存の文字を入れました

コマンドラインからは

mysql> SELECT `moji` FROM `sample`;
+------+
| moji |
+------+
| 普 |
| 通 |
| の |
| 文 |
| 字 |
| 〓 |
| 〓 |
| 〓 |
+------+
8 rows in set (0.00 sec)

と期待通り表示されます。
またEUC-JPで作成したPHPのWebサイトからも正常に扱えます。

しかし、phpMyAdminでは機種依存文字の部分3つは文字化けします。

SHOW VARIABLES LIKE 'character_set%' を見てみると。
Variable_name Value
character_set_client utf8
character_set_connection utf8
character_set_database ujis
character_set_filesystem binary
character_set_results utf8
character_set_server ujis
character_set_system utf8
character_sets_dir /usr/local/share/mysql/charsets/

のようにグローバル値と違ったセッション値になっているし
ブラウザに表示されるのも charset=utf-8 なので
phpMyAdmin で? または MySQL が?
EUC-JP を UTF-8 に変換して表示しているのだと思うのですが。

EUC-JP の機種依存文字は変換するときに

mb_convert_encoding(mb_convert_encoding($moji,"sjis-win","EUC-JP"),"UTF-8","sjis-win")
の様に
EUC-JP → sjis-win → UTF-8 の手順で変換すると問題なく

UTF-8で作ったWebサイトでも扱えます

phpMyAdmin でこれらの文字を正しく扱えるようにする方法はありませんでしょ
うか?

または、どこかの設定が間違っているのでしょうか?

よろしくお願いします。


投稿者 xml-rpc : 2010年11月19日 11:59
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/100156
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。