[前][次][番号順一覧][スレッド一覧]

mysql:15431

From: "kenji@xxxxxxxxxx" <"kenji@xxxxxxxxxx" <kenji@xxxxxxxxxx>>
Date: Fri, 19 Nov 2010 11:59:27 +0900
Subject: [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 でこれらの文字を正しく扱えるようにする方法はありませんでしょ
うか?

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

よろしくお願いします。

[前][次][番号順一覧][スレッド一覧]

->   15431 2010-11-19 11:59 ["kenji@xxxxxxxxxx" <] EUC-JPの一部の文字がphpMyAdminで化ける  
     15432 2010-11-19 12:09 ┗[Akio Imai <suzuro204] Re: [mysql 15431] EUC-JPの一部の文字がphpMyAdminで化ける
     15433 2010-11-19 13:04  ┗["kenji@xxxxxxxxxx" <] Re: EUC-JPの一部の文字がphpMyAdminで化ける
     15434 2010-11-19 13:29   ┣[Akio Imai <suzuro204] Re: [mysql 15433] Re: EUC-JPの一部の文字がphpMyAdminで化ける
     15436 2010-11-19 13:44   ┃┗["kenji@xxxxxxxxxx" <] Re: EUC-JPの一部の文字がphpMyAdminで化ける
     15435 2010-11-19 13:43   ┗[SAKAI Kei <sak2@xxxx]                                   
     15437 2010-11-19 13:47    ┗["kenji@xxxxxxxxxx" <]                                 
     15438 2010-11-19 14:10     ┗[SAKAI Kei <sak2@xxxx]                               
     15439 2010-11-19 14:16      ┗["kenji@xxxxxxxxxx" <]