• ベストアンサー
  • 困ってます

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のプログラム上は問題ないと言えば問題がないのですが、何となく気持ち悪い状態なので、ご質問させて頂きました。 よろしくお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数264
  • ありがとう数1

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

  • ベストアンサー
  • 回答No.1

以下の設定ファイルがUTF-8になっているかご確認ください。 ○php.ini [mbstring] mbstring.internal_encoding mbstring.detect_order ○my.ini [mysqld] default-character-set [mysqldump] default-character-set [mysql] default-character-set 間違っていたら申し訳ないです。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご回答頂きどうもありがとうございます。 お礼が遅くなり申し訳ございません。 ご指摘頂いた設定について確認してみましたが、全てUTF-8となっていたにもかかわらず上手くいきませんでした。 もう少し自分でも検証してみようと思います。

関連するQ&A

  • 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
  • PHPとmysqlでの文字化けについて

    現在PHPとMySQLを利用したwebシステムを作成しています。 しかし文字化けが発生して困っています。こちらの環境は PHP5.1.4 MySQL5.1.11 phpMyAdmin - 2.8.0-rc1 レンタルサーバー(xrea)を使っています。 自分でいろいろと調べたところ文字のエンコードはujisに統一したほうがいいとのことまではわかりました。 show variables like "char%"; を実行したところ character_set_client utf8 character_set_connection sjis character_set_database ujis character_set_filesystem binary character_set_results utf8 character_set_server utf8 character_set_system utf8 このように表示されます。 PHPの方も <?php header('Content-Type:text/html; charset=EUC-JP'); ?> や <?php $str = mb_convert_encoding($str, "EUC-JP", "auto"); ?> を実行しても日本語の部分は???で表示されてしまいます。 いろいろと調べたのですが、さっぱり原因がわかりません。 よろしくお願いします。

  • phpでxampp環境下での文字化けについて

    プログラムを初めて組んでいるのですが、どうしてもデータベースを使いたいので phpmyadminを使い、いろいろいじっているのですが、phpでデータベースの内容を 表示したときなのですが、どうしても文字化けが直りません。 (日本語だけ文字化けします) いろいろググってみて以下で解決できそうなのですが、書いてある事がさっぱりわからず どなたか分かりやすく解説してもらえませんでしょうか。 phpの文字コードはUTF8 データベース照合順序はutf8_general_ciにはして あります。 最初の 「SET NAMES utf8」というクエリを発行。 というのはすでに意味がわかりません・・。 --------------------------------------------------------- 【状況】 PHPからMySQLにデータ登録し、phpMyAdminで値を閲覧すると、日本語が文字化けしている。 ただし、その状態の値をPHPで取得・表示は普通にできる。 ※PHP、HTMLの文字コードは「UTF8」。データベースの照合順序は「utf8_general_ci」 【対応】(以下の「xampp_path」はXAMPPのインストールパス) データベース接続後に「SET NAMES utf8」というクエリを発行。 もしくはPHP5.2.2以降なら「mysql_set_charset(‘utf8′);」を実行しても良い。 「xampp_path/mysql/bin/my.ini」に以下の項目を追加・修正 [mysqld] character_set_server=utf8 skip-character-set-client-handshake [mysqldump] default-character-set=utf8 [mysql] default-character-set=utf8 「xampp_path/phpMyAdmin/config.inc.php」に以下の項目を追加・修正 $cfg['DefaultLang'] = 'ja-utf-8'; $cfg['DefaultCharset'] = 'ja-utf-8';

    • ベストアンサー
    • 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
  • XAMPPの文字化け

    データベース(MySQL)に接続してデータを表示するというプログラムをPHPで作っています。ですが、日本語の部分が文字化けをしてしまいました。 どうやらソースコードではなくXAMPPの設定に原因があるそうです。 my.iniに以下の記述を追記すればよいとのことなのでmy.iniを変更したのですが、そうするとMySQLが起動できなくなってしまいます(起動してもすぐ自動的にストップしてしまいます) なので、my.iniの内容をコピーしたmy.confを作成し、そこに以下の記述を追記しました。 [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 すると、MySQLは起動できるようになりました。しかしステータスを参照すると以下のように表記されており変更が反映されていません。 +--------------------------+----------------------------------------+ | 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 | D:\program\xampp\mysql\share\charsets\ | +--------------------------+----------------------------------------+ どうすればいいのでしょうか?いろいろ調べて試してみたのですが分かりません。このせいで先に進めず困っております。助けてください。。 保存先フォルダは D:\program\xampp\mysql です。 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
  • 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
  • mysqlの文字化けについて

    さくらサーバーのプレミアムプランで、MYSQLが文字化けを起こして困っています。 MYSQL5.1、データベースの文字コードはUTF8です。 UTF8でエンコードされたPHPプログラムからデータをINSERTすると文字化けを起こします。 ハッスルサーバーで同じ環境を再現すると、文字化けは起こしません。 違いは、ハッスルサーバーでは、「character_set_server utf8」になっているのに対して、 さくらサーバーでは、「character_set_server ujis 」となっています。 この、ujisをutf8に変更すれば解決しそうに思うのですが、変更の仕方がわかりません。 アドバイス頂けましたら、幸いです。

  • PHPの文字化けについて

    いつもお世話になってます。 以下の様な問題が発生しておりまして、 何か解決するための情報がありましたらご提供頂けませんでしょうか。 ------------ PHPで、テキストボックスと登録ボタンを配置した簡単な入力フォームを作成しました。 (登録ボタン押下後は入力した文字を消すことはせず、 DB側に登録した内容をテキストボックスに表示するような形式です。) ところがテキストボックスに「能」と言う文字を入力すると、 文字化けを起こし、「??」と言う文字が表示されます。 「一」や「日」などは問題ありませんでした。 これは2byte文字の変換に失敗している所為と考え、文字コードについて調べました。 PHP側からは全てutf8の文字コードでデータを送信しています。 DB側の文字コードは以下のようになっていました。 >show variables like 'character\_set\_%'; 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 ujis character_set_system utf8 各種サイト様を参考にしたところ、 character_set_server が ujis となっているのが問題のような気がしています。 ですが、本DBは学校で借りているレンタルサーバを使用しているため、 my.cnf等直接ファイルを修正することが出来ません。 なので、以下のサイト様を参考にSQL発行の際には必ず SET character_set_server = utf8; も発行するようにしてみたのですが、上手くいきませんでした。 http://thesnowcolor.blogspot.jp/2010/10/phpmyadmin.html 自ら試したのはここまでです、何かほかに調べたほうがよい、 などありましたら情報のご提供宜しくお願い致します。 【PHP環境】 Apache 2.2.3 PHP 5.1.6 MySQL 5.0.45 (※他、必要情報ありましたらご指摘お願いします)

    • ベストアンサー
    • 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で文字化け

    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