2010年11月19日

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

初めまして、今井と申します。

my.cnf に以下を追加してみてください。

[client]
default-character-set=ujis

また、phpMyAdmin のことをここで話のはアレですが

config.inc.php の下記の箇所がどうなっているか確認してみてください。
$cfg['DefaultLang']
$cfg['DefaultCharset']

2010年11月19日11:59 kenji@xxxxx <kenji@xxxxx>:
> こんには、鈴木と申します。
>
> 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日 12:09
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/100158
トラックバック
コメント
コメントする




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