phpMyadminと文字コード

このQ&Aのポイント
  • PHPとMySQLのインストールをxamppを使って行った際、文字コードの設定について資料を参考にmy.iniに追加したが、phpMyadminの画面には文字セットがUTF-8と表示される
  • MySQLの文字コード設定を確認すると、character_set_client、character_set_connection、character_set_databaseなどがすべてujisになっている
  • phpMyadminを使って入れたデータはPHPで正常に表示されるため、無視しても問題ないのか疑問がある
回答を見る
  • ベストアンサー

phpMyadminと文字コード

PHPとMySQLのインストールをxampp(ver1.6.7)を使って行いました。文字コードはEUC-JPを使いたいので、資料を片手にmy.iniにdefault-character-set=ujisとskip-character-set-client-handshakeを追加しました。 コマンドプロンプトからMySQL Monitorを使ってshow variables like 'char%';と打ってみると、次のように表示されます。 +--------------------------+--------------------------------+ | 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 | c:\xampp\mysql\share\charsets\ | +--------------------------+--------------------------------+ と、ここまではいいのですが、phpMyadminのトップの画面には相変わらず「MySQL の文字セット: UTF-8 Unicode (utf8) 」と表示されるます。これは無視してもかまわないのでしょうか。phpMyadminを使って入れたデータをPHPで表示するとちゃんと表示されます。

  • MySQL
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • id357
  • ベストアンサー率29% (39/133)
回答No.1

多分 MySQL5 あたりの話ですよね。 だとしたら、設定は問題ないでしょう。 MySQL が内部コードとして UTF8 を使用していますので 普通には システムキャラクタは変えようがありません。 厳密に言うと ujis は UTF16 のことなのですが 文字化け等が発生しなければ 良し。 本来なら UTF8 で揃えるのが無難ですが、あれこれ試して いろいろ考えてみるのも知識の充電になると思います。

meglin888
質問者

お礼

レスありがとうございます。 >多分 MySQL5 あたりの話ですよね。 そうです。xamppのバージョンだけ書いて、肝心のMySQLは書いていませんでした。Ver5.1.2600です。 >MySQL が内部コードとして UTF8 を使用していますので >普通には システムキャラクタは変えようがありません。 トップページの表示は変えられないということですね。 >本来なら UTF8 で揃えるのが無難ですが、あれこれ試して >いろいろ考えてみるのも知識の充電になると思います。 おっしゃる通りです。あれこれ暗中模索しております。 おかげさまで少しだけ先に踏み出せた感じです。 ありがとうございました。

関連するQ&A

  • XAMPP環境でのphpmyadminで文字化け

    お世話になります。 これまでさくらのレンタルサーバスタンダードで動かしていたPHPのプログラムをXAMPP環境でデバッグしようとしたのですが、何故かphpmyadminでテーブルの内容を照会した時のみ日本語が文字化けして表示されます。 さくら、XAMPPの両環境で 「SHOW VARIABLES LIKE 'char%';」 を実行したところ、どちらの環境も character_set_client utf8 character_set_connection utf8 character_set_database utf8 character_set_filesystem binary character_set_results utf8 character_set_server ujis character_set_system utf8 と表示され、Mysqlの全てのテーブル、カラムの照合順序は「utf8_general_ci」となっています。 phpのプログラム上は問題ないと言えば問題がないのですが、何となく気持ち悪い状態なので、ご質問させて頂きました。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • phpMyAdimnとコマンドラインでのSQL結果

    phpMyAdimnとコマンドラインで現在の文字コードを取得すると結果がことなる。 文字コードを調べる為に「show variables like 'char%';」を phpMyAdminLとコマンドラインで上で流したのですが結果がことなります。 phpMyAdmin character_set_client utf8 character_set_connection sjis character_set_database latin1 character_set_filesystem binary character_set_results utf8 character_set_server sjis character_set_system utf8 character_sets_dir /usr/share/mysql/charsets/ コマンドライン 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 | /usr/share/mysql/charsets/ my.cnfで下記の設定を行っております。 [mysqld] character-set-server = sjis collation-server = ujis_japanese_ci skip-character-set-client-handshake [mysql] default-character-set=sjis [client] default-character-set=sjis 日本語文字も正しく登録、更新できphpMyAdminでも正しく表示されていると思うのですが phpMyAdminで結果が異なるのが気になり質問させていただきました。 phpMyAdminでの結果は無視しても問題ないのでしょうか。 環境 CentOs 5.7 Mysql 5.5.17 phpMyAdimn 3.4.7 php 5.3

    • ベストアンサー
    • MySQL
  • phpMyadminの文字化けについて

    PHPでINSERTしたものをphpMyadminで確認すると 日本語が文字化けしています。 コマンドプロンプトでテーブルを見てみると文字化けは起こっていません。どこを変えればいいのでしょうか? いろんなサイトを参考にmy.iniを直してみてもだめでした。 ----- my.ini ------ [mysqld] default-character-set = utf8 skip-character-set-client-handshake character-set-server = utf8 collation-server = utf8_general_ci init-connect = SET NAMES utf8 skip-character-set-client-handshake [mysqldump] quick max_allowed_packet = 16M default-character-set = utf8 [mysql] no-auto-rehash # Remove the next comment character if you are not familiar with SQL #safe-updates default-character-set = utf8 ----- phpMyadmin ----- テーブルの照合順序 utf8_general_ci mysql> \s Server characterset: latin1 Db characterset: latin1 Client characterset: latin1 Conn. characterset: latin1 バージョンは以下のとおりです。 XAMPP 1.7.1 MySQL 5.1.33 PHP 5.2.9 phpMyadmin

    • ベストアンサー
    • MySQL
  • 文字化けに関して

    環境 PHP:PHP5.3.8 MySQL:mysql-5.5.17-win32 phpmyadmin:phpMyAdmin-3.4.7-all-languages 文字化けに関して教えて下さい。 過去に何度も設定した経験がありますが、また同じ事ではまってしまいました。 現在、phpのプラグラム(プログラムの設定は charset=SHIFT-JISで設定)でMySQLへ入力処理を行っていますが、 どうしても文字化けしてしまいます。 MySQLの環境としては、 mysql> show variables like "char%"; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | sjis | | character_set_connection | sjis | | character_set_database | utf8 | | character_set_results | sjis | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | C:/Program Files/MySQL/MySQL Srever 5.5/share/charsets/ | +--------------------------+----------------------------+ となっており、上記character_set_database がutf8である事が原因とあった為、 何とか変更しようとしましたが、変更できません。 phpmyadmin の設定も間違っているのでしょうか? そもそもどのような設定を行えば良いのか、正しい値を教えて頂ければ幸いです。 初歩的な質問で申し訳ありませんが、教えて下さい。

    • ベストアンサー
    • PHP
  • MySQLの文字化け

    MySQLにPHPでデータを入力しています。 utf8でデータを送信しています。 どうも MySQLの設定がうまくできてないようです。 どこを どうやって変えたらよいのでしょうか? mysql> show variables like 'char%'; +----------------------+-----------------------+ | Variable_name        | Value             | +----------------------+-----------------------+ | character_set_client    | cp932             | | character_set_connection  | cp932             | | character_set_database   | latin1             | | character_set_filesystem  | binary             | | character_set_results  | cp932             | | character_set_server   | latin1             | | character_set_system   | utf8              | | character_sets_dir     | C:\xampp\mysql\share\charsets\ | +----------------------+-----------------------+

    • ベストアンサー
    • PHP
  • 文字コードを揃えているはずなのに文字化け?

    プログラム初心者です。 PhpMyAdminでテーブルを作ってそこに接続するスクリプトを書くと 結果の日本語が文字化けしてしまい困っています。 SQLのコマンドラインツールから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\ | +--------------------------+--------------------------------+ 以上の様にcharacter_set_filesystem以外はUTF-8になっているのですが なぜ文字化けしてしますのでしょうか? このcharacter_set_filesystemをUTF-8にしないとそうなってしまうものなのでしょうか。 スクリプトはTerapadを使用しUTF-8で保存しています。 手持ちのPHPの参考書によると、文字化けの発生には以下の5箇所があるといいます。 1、HTTPリクエスト 2、PHPファイル内での文字列読み込み 3、DBアクセス 4、MysqlからApacheの問い合わせに対するレスポンス 5、HTTPレスポンス 現在この5つのうちのどこに原因があって文字化けしているのでしょうか? 3のDBアクセス時かな?と思って 参考書に従ってphp.iniや.htaccessを設定したつもりですが解消しません。 環境設定だけで一日仕事になってしまいました(汗) お詳しい方、どうかお知恵をお貸し下さい。 原因と対策を教えて下さると助かります。 情報の過不足があればご指摘ください、よろしくお願いいたします。 当方の環境  ■php 5.4.7  ■mysql 5.0.10  ■Apache 2.4.3

    • 締切済み
    • PHP
  • phpMyAdminで文字化け

    PHP5.2.4、MySQLバージョン4.1.16、phpMyAdmin 2.11.1を使用しています。 php側でInnoDBのテーブルを作成して日本語の値を挿入した状態です。 php側では表示などしても文字化けしてないのですが、 phpMyAdminで日本語で登録されているカラムを見ると文字化けしています。 phpMyAdminで日本語の値で更新し直すと、文字化けせずにちゃんと表示されます。 mysqlの設定ファイルで #character-set-server = latin1 #collation-server = latin1_general_ci default-character-set=utf8 skip-character-set-client-handshake として再起動してテーブルを作成し直したのですが文字化けは直りません・・・ 何が原因なのでしょうか? phpMyAdminのテーブルオプション ストレージエンジン:InnoDB 照合順序:utf8-general_ci

    • 締切済み
    • PHP
  • 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_*の意味がいまいち分かりません。 こちらも分かれば教えて頂きたいと思います。 宜しくお願いします。

    • ベストアンサー
    • MySQL
  • mysqlコマンドだけ文字化け

    WinXPでxampp1.6.6aを使っています。 文字コードはutf8で設定したく説明しているサイトを探しmy.cnfを 下記のように修正および追加しました。 [client] default-character-set = utf8 [mysqld] skip-character-set-client-handshake default-character-set = utf8 character-set-server = utf8 collation-server = utf8_general_ci init-connect = SET NAMES utf8 [mysqldump] default-character-set = utf8 [mysql] default-character-set = utf8 phpadminから確認すると日本語も文字化けせずに表示されるのですが なぜかコマンドから確認すると日本語が文字化けしてしまいます。 おなじような質問がありなんとかできるものかと思い確認したのですが 特に設定が間違っているようではなく解決策がみつかりません・・・ 文字化けせずに表示させるためにはどうすればいのでしょうか? 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:\Program Files\xampp\mysql\share\charsets\ | +--------------------------+----------------------------------------------+

    • ベストアンサー
    • PHP
  • UTF-8にしても文字化けが直らない

    XAMPPでPHPとMySQLを使っています。 しかし、そのまま使うと文字化けが起きてしまいます。調べると「UTF-8」にすることで文字化けが起こらないとのことなので変更をし、以下のように全てutf-8に書き換えることができました。 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 | D:\program\xampp\mysql\share\charsets\ | +--------------------------+----------------------------------------+ しかし、それでも文字化けは直りませんでした。以下のコマンドで原因を確かめてみました。 mysql> use testdb; Database changed mysql> status -------------- Server characterset: utf8 Db characterset: latin1 Client characterset: utf8 Conn. characterset: utf8 Db characterset: latin1が原因だと思い、以下のコマンドを実行しました。 alter database testDB character set utf8; そしてもう一度テーブルを作りなおすと今度は文字化けどころか空白になってしまいました。 なにが原因で文字化け等が起こっているのか分かりません。助けてください。 OSは Windows Vista です。 バージョンは ApacheFriends XAMPP version 1.7.7 + Apache 2.2.21 + MySQL 5.5.16 (Community Server) + PHP 5.3.8 (VC9 X86 32bit thread safe) + PEAR です。 回答よろしくお願いいたします。

    • ベストアンサー
    • MySQL