みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

XAMPPでMySQLで文字化け、文字コード設定について

MySQLの文字セット: UTF-8 Unicode (utf8)が変更できない。(できればSJISにしたい)
環境:
OS:WinXP
XAMPP1.6.6
* Apache 2.2.8 + OpenSSL 0.9.8g
* MySQL 5.0.51
* PHP 5.2.5 & PHP 4.4.8 (RC2)
* phpMyAdmin 2.11.4


症状:
コマンドラインから作った全角文字を含む簡易テーブルについて。
ブラウザからphpMyAdminで確認すると文字化けせず読めるが、
DOSからコマンド"select"で確認すると文字化けしてしまう。

DOS窓からコマンド入力で簡単なテーブルsampleを作る。
東京,tokio
Kanagawa,kanagawa
とうきょう,tokio

mysql> select * from sample;
+------------+----------+
| ken | kencho |
+------------+----------+
| | tokio |
| Kanagawa | kanagawa |
| ニ、ォ、 | tokio |
+------------+----------+

mysql> status
Server characterset: sjis
Db characterset: sjis
Client characterset: sjis
Conn. characterset: sjis

mysql> show variables like '%char%';
+--------------------------+-----------------------------------+
| Variable_name | Value |
+--------------------------+-----------------------------------+
| character_set_client | sjis |
| character_set_connection | sjis |
| character_set_database | sjis |
| character_set_filesystem | binary |
| character_set_results | sjis |
| character_set_server | sjis |
| character_set_system | utf8 |
| character_sets_dir | _xampp_mysql_share_charsets_ |
+--------------------------+-----------------------------------+
character_set_systemだけがutf8なのは何故でしょうか?


編集したファイル:
<my.ini(C:\WINDOWS)>
[mysqld]
default-character-set=sjis
[mysql]
default-character-set=sjis
[mysqldump]
default-character-set=sjis

<my.cnf(C:\xampp\phpMyAdmin)>(短縮ダイヤル)
default-character-set=sjis
init-connect=SET NAMES sjis

<config.inc.php(C:\xampp\phpMyAdmin)>
$cfg['DefaultLang'] = 'ja-sjis';
$cfg['Lang'] = 'ja-sjis';
$cfg['DefaultCharset'] = 'ja-sjis';


結果:
とりあえず調べた事をファイルに反映させてみましたが、
DOSプロンプトからselect文を実行すると全角文字が読めません。
どうすれば読めるようになりますか?
character_set_system utf8を変更するのでしょうか?

"http://www.oji.ath.cx/sb/log/eid11.html"を参考にさせて頂きましたが、character_sets_*の意味がいまいち分かりません。
こちらも分かれば教えて頂きたいと思います。

宜しくお願いします。

投稿日時 - 2008-02-23 06:23:17

QNo.3801387

困ってます

質問者が選んだベストアンサー

>character_set_systemだけがutf8
テーブルやカラム名などを制御するところで、ここはUTF8固定
だったと思います。
MySQL自体が最近は内部UTF8だったはずなので。
(間違えていたら詳しい方アドバイスお願いします。)

文字化けは「参考URL」にもありますが、MySQL5.x系とコマンド
プロンプトの文字受け渡しがうまく整合取れていないらしく
(5.0.51と5.0.45でのみ試していますが)完全には全角表示ができ
ないと思います。
ちなみに5.0.51で試した場合、まったく同じような状況で、
5.0.45にダウングレードした場合、ある条件下以外では全角表示
できるようになりました。

参考URL:http://oshiete1.goo.ne.jp/qa3786052.html,http://oshiete1.goo.ne.jp/qa3797951.html

投稿日時 - 2008-02-25 12:06:46

お礼

ご回答ありがとうございます
SQL,PHPを勉強するつもりでしたが、満足に動く環境を整えるほうが骨が折れそうです。
目的は最新XAMPPを使う事ではないので、残念ですがそれぞれパッケージをインストールし直そうと思います。

今まで文字コードを殆ど考えた事はありませんでしたが、utfなどを意識する良いきっかけになりました。
改めてインストールが完了してから、色々な文字コードで動作させてみようと思います。

この度はありがとうございました。

投稿日時 - 2008-02-25 15:33:35

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(2)

多分駄目だろうな、というような気がしますが、
DOSから

set names sjis;
または、
set names cp932;
を打ち込んで、同じことをした場合はどうなりますでしょうか?

投稿日時 - 2008-02-25 10:57:59

お礼

ご回答ありがとうございます。
以下を実行し、select文を実行しましたが文字化けは解消しませんでした。
mysql> set names cp932; or (set names sjis);
mysql> status;
--------------
mysql Ver 14.12 Distrib 5.0.51, for Win32 (ia32)
(略)
Server characterset: sjis
Db characterset: sjis
Client characterset: cp932
Conn. characterset: cp932


残念ですが、それぞれ個別でインストールし直そうかと思います。
参考になりました、ありがとうございます。

投稿日時 - 2008-02-25 14:45:13

あなたにオススメの質問