• 締切済み
  • 困ってます

php / MySQL で文字化け

XAMPP 1.8.3 (PHP:5.5.11 & MySQL5.6.16)を、手元の2台のPCに同様に 構成したつもりなのですが、 マシンA:日本語表示に問題なし マシンB:DBデータから取り込んだ日本語だけが、???に化ける という状況です。 ・OSバージョン・ブラウザバージョンは同一、 ・PHP設定ファイル:php.ini は、2台のマシンで差異なし(diffで確認済) ・MySQL設定ファイル:my.iniは、2台のマシンで差異なし(diffで確認済) なのですが、他に確認すべき個所はありますでしょうか? マシンBの文字化け状況ですが、 (1)DBテーブルから呼び出した日本語だけが???に化ける (2)その他Webページ上の日本語は問題なし (3)phpMyAdminで当該のテーブルを参照すると、日本語は正常に表示されている 他に確認すべき個所はありますでしょうか?

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

  • 回答数2
  • 閲覧数180
  • ありがとう数5

みんなの回答

  • 回答No.2

> (1)DBテーブルから呼び出した日本語だけが???に化ける DB構築時の文字指定と投入したデータの文字コードは一致していますか。 ここにずれがあるような感じですか。 もう一度両マシンでDBの再構築をしてみたらいかがでしょうか。

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

  • 回答No.1
  • hue2011
  • ベストアンサー率38% (2798/7237)

全然誰も答えないのもいかがなものかとおもいますので、言います。 AのブラウザからBのサーバを身にいき、BのブラウザからAのサーバを見に行ってみましたか。 AのブラウザでAのサーバ、BのブラウザでBのサーバ、も見てみましょう。 文字化けというのは、DBとも開発言語とも関係ありません。 プラットフォームの問題ですから。 ページ中にcharsetがはっきり宣言されているかどうかもチェックすべきことです。

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

関連するQ&A

  • PHPとMySQLについて

    社内サーバーにWebアプリをUPし、 全てデータベース管理にするため、MySQLを使用しました。 参考書を見ながら作成したため、構文に間違いはありません。 参考書は「 はじめての人のためのかんたんPHP + MySQL入門」です。 この参考書の第8章にあるWEBアプリを忠実に再現しました。 しかし、フォームに情報を入力し、登録を押しても情報が反映されません。 以上と同じように、ぶっとびねっと(フリーレンタルサーバー)でもUPし、phpMyAdminでDBを構築しましたが、 これも同じく登録情報が反映されませんでした。 無論、phpMyAdminから直接CREATEし、HPに情報を反映させるのは可能です。 その際、日本語が???となってしまいましたが、その他は正常です。 一番の問題は、なぜHPから情報を入力し、それがDBへ反映されないのかです。 .htpccessやPHP.iniの設定と何か関係があるのでしょうか? 社内サーバーに.htaccessファイルは無いそうです。 となると、php.iniだと思います。 私は初心者のため、イマイチPHP.iniが良く分かりません。 ローカルにApacheなどを落とした場合は、C:Windowsの中にPHP.iniの設定をいじればいいと思いますが、 社内サーバーの場合、サーバー上のどこかにあるPHP.iniファイルの設定を変える必要があるのでしょうか? 以上、ごちゃごちゃしてて申し訳ありませんが、 お助け下さい。

    • ベストアンサー
    • PHP
  • PHPとMySQLを利用し、文字化けの問題。

    ApacheとPHPとMySQLを使って、ウェブサイトを作成する。 参考書は導入効果バツグン!PHP5.0+MySQL5.0で構築する最速Webシステムです。 この本によって、色々な設定も変更した。(php.iniの設定とhttpd.confの設定とMySQLのファイルでのmy.ini、三つとも更改した。) MySQLにはPHPMyAdminツールを利用して、データをインポートした。 現在PHPのプログラムは作成していたげと、ブラウザで示した時は文字化けという問題があった。PHPのプログラムでcharset=shift_jisも設定した。ちなみにプログラムの中で日本語を使っているので、ブラウザでも正しく示した。PHPMyAdminの中に示したいデータベースとテーブルには全部のエンコードはsjisで設定した 結局どこか間違ったところがあるので、全くわからなかった。 情報をいただければと思います。では、よろしくお願いいたします。

    • 締切済み
    • PHP
  • PHPとMySQLで文字化けします

    <?php $con=mysql_connect("localhost","oxwar2","chono3"); $db=mysql_select_db("oxwar2",$con); $query="insert into japan(id,title,price)values(1,'絵本',1000)"; $result=mysql_query($query,$con); if($result){ print "OK"; } ?> として、実行すると上手くいきますが、phpMyadminで見ますと、日本語の部分だけが文字化けしております。 これを直すにはどうしたらよいのでしょうか。 文字コードはUTF8で作りました。色々試しても同じです。 どのようにしたらよいのでしょうか。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • php mysqlの文字化け(レンタルサーバーにて

    phpとmysqlを使って検索システムを作りました。 サーバーはお名前.comを使っています。 phpmyadminにデータを入れた時、きちんと日本語で表示されます。 しかし、実際にDB内の情報をサイトに表示した時に文字化け(??????といった文字化け)が起きます。 いろいろ調べてみるとmysql_query()を使う方法があるみたいなのですが、脆弱性の問題からおすすめしないと書いてありました。 とはいえ、一度mysql_queryで試してみたのですが、そうすると表示する動作そのものにエラーが発生したりでした。 整理すると以下の状況です。 ・phpmyadminでDB内を確認すると、きちんと日本語が表示されていた。 ・しかしサイトにDB内情報を表示すると????と文字化けを起こしていた。 ・mysql_query()は使えなかった。 具体的な対処法として、どうしたらいいものか、ご教示いただけないでしょうか?

    • ベストアンサー
    • PHP
  • 【PHP+MySQL】質問二点/日本語の問題/“!”判定の意味

    よろしくお願い致します。 apache2.2+PHP5+MySQL5で勉強中です。 ■日本語の問題について MySQLもPHP(HTML)も全てSJISで取り扱いたいと思っております。 自宅PCと学校PC共に同じ様にインストール及び設定したと思うのですが (違う所といえばOSがXPhome(自宅)とXPpro(学校)くらいでしょうか) 自宅PCではPHPでDB接続して、mysql_query("SET NAMES sjis"); の一文を入れなければブラウザで日本語出力ができません。 学校PCではこの一文なしに日本語が表示されるのですが…。 できればSETSQLなしにできればと思っているのですが、 設定ファイル(ini)か何かの問題でしょうか。 ■“!”判定の意味について if(!$atai)で判定すると 0 もNULLと同じ様にかかってくるのですが。 この!はどういう意味の判定なのでしょうか。 またNULLだけをはじきたい場合はどのように書くのがよろしいでしょうか。 ご存知の方いらっしゃいましたらご教示願います。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • PHP4とMySQL5の連携での文字化け

    質問させていただきます。 以前LinuxにてMySQL3で運用していたデータベースを、 MySQLを5にVerUPしてWinXPのサーバーに移植しました。 その際、有名な不都合だとわかっていますが、 PHPで表示するDBのデータが文字化けしてしまったのです。 MySQLを3に戻して使えるなら良いのですが、 事情があり、どうしても5でなければいけないのです。 その際、PHPのソースには手を付けられません。 MySQLとphp.iniの設定だけで、 どうにか解決する事は出来ないでしょうか? PHPのソースはEUCで書かれています。 出来る限り検索をして、トライしてみたのですが どうしても解決することが出来ませんでした。 SQL文でバックアップがありますので、 データ自体は1から入れなおす事が可能です。 具体的にどこをどう一致させればいいか、 解説してくださる方がいらっしゃいましたら、 どうかお力を貸していただきたく存じます。 宜しくお願いします。

  • PHPからMySQLが動かせません

    PHPからmysqlのテーブルを開こうとした際に Fatal error: Call to undefined function mysql_connect() という一文が出ました。 php.iniのextension_dirのパスは一字一句間違っておりませんし、 extension=mysql.so extension=mysqli.so の二文も追加しました。また、その二つのファイルがあることも確認済みです。 また、phpファイルの構文は以下のとおりになっています。 $link = mysql_connect('ローカルホスト', 'ユーザー名', 'パスワード'); if (!$link) { die('接続失敗です。'.mysql_error()); } print('<p>接続に成功しました。</p>'); こちらもいろいろ調べまして、php_mysql.soとphp_mysql.soがないためではないかなどとかんぐっておりますが、そういった記述は私が調べた限りにおいては見かけませんでした。 php_mysql.soとphp_mysql.soというファイルはなくても、mysql.soとmysqli.soというファイルがあれば動くのでしょうか? 仮にphp_mysql.soとphp_mysql.soというファイルがないと動かない場合、何をインストールすればよいのでしょうか? ご回答よろしくお願いします。 また、PHPとMySQLはソースファイルを/usr/ports/distfilesディレクトリにコピーした上でポートからmake、make installしました。 マシンスペック OS…FreeBSD6.4 Apache…1.3.14 PHP…5.2.8 MySQL…5.0.92 都合上、バージョンを他のものに変更することはできません。 追記してくれということがありましたらよろしくお願いします。

  • MySQLとPHPの連携がうまくいかない

     プログラマ初心者ですが、以下の質問があります。  PHPからMySQLへの接続がうまくいかなくて困っています。  まず、使っているバージョンは以下の通りです。  MySQL 5.0.27  PHP 5.2.0  Apache 2.2.3  Windows XP Profesional  そして、エラーメッセージは以下のとおりです。  Fatal error: Call to undefined function mysql_connect() in C:\Usr\Apache\htdocs\db0.php on line 6  各サイトで解説されている以下の設定はすべて行いましたが、それでもできないようです。  ・Windowsフォルダにphp.iniをコピーする。  ・php_mysql.dll、php_mysqli.dll、libmysql.dllをsystem32にコピーする。  ・iniファイルにextension_dir=C:\php5\extとセットする。  ・iniファイルのextension=php_mysql.dll、extension=php_mysqli.dllのセミコロンをはずす。  他の方の解決策は以下のどれかが抜けていたというようなものらしいですが、私の場合はどれも抜けていないのに駄目だという状態です。  MySQL、Apacheは正常に動いています。(関係ないかもしれませんが、PerlとMySQLの連携は問題なく動いています)  どなたか解決策がわかる方は教えてください。

    • ベストアンサー
    • MySQL
  • PHPでMYSQLのデータを読み込んだ時

    PHPでMYSQLのデータを読み込んで出力した時、日本語の部分だけ、表示されません。 my.iniには、いろいろ調べて、下のように書いてみました。ちなみに、sjisと書いてあるところは、ujisと書き換えたりもしました。 バージョンは、アパッチが2.0.53、PHPが5.0.4、MYSQLは4.0.20dです。 日本語の部分以外は、ちゃんと表示されているので、文字の設定が間違っているのだと思うのですが、 どなたか、分かる方教えてください。 [WinMySQLAdmin] Server=C:/mysql/bin/mysqld-nt.exe [mysqld] default-character-set=sjis language=C:/mysql/share/japanese [mysql] default-character-set=sjis [mysql-dump] default-character-set=sjis

  • mySQL 4.0で文字化け

    はじめまして、PHP+mySQLでプログラムを勉強中の初心者です。 PHPからインサートした日本語データをphpmyadminで確認するとデータが化けています。SQL文自体をPHPで表示させると文字化けせずにちゃんと表示されます。  mySQL 4.1以降なら SET NAMESというコマンドをDB接続後に入れることで問題が回避できると言うことですが、mySQL 4.0ではコマンドエラーになってしまいます。 レンタルサーバーなので、PHPのアプリケーション側で対応できたらと考えています。 何かよい方法がないでしょうか? PHP 4.3.11は mySQL 4.0.27です。 PHPのキャラクターはutf-8, mySQLのCharactersetは latin1となっていました。 よろしくお願いします。

    • ベストアンサー
    • MySQL