• ベストアンサー

MySQLから日本語データを読み込むと文字化けする

MySQLにある日本語のデータをPHPで読み込むと文字化けしてしまいます。 どうすれば文字化けせず表示させることができるのでしょうか?

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

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

  • ベストアンサー
  • selenity
  • ベストアンサー率41% (324/772)
回答No.1

MySQL、phpのバージョン、および動作環境等の情報が不明のため、一般論で書きます。 ・まず、MySQLへデータを書き込んだ際の文字コードとMySQLからデータを読み込む際の文字コードは一致しているか確認しましょう。 ・PHPが使用する文字コード(特にmbstring.internal_encoding)の設定を確認しましょう。 その上で、MySQLのバージョンが4.1以上であれば、MySQLの内蔵機能で勝手に変換されているためでしょう(余計なお節介機能とも言います)。 UNIX環境であれば迷わずMySQLをSOURCEからコンパイルし直した方がよいでしょう。 MySQLの設定(サーバ側、クライアント側共に)で「変換しない」設定にすれば直ると思います。 Windows版だとやっかいかもしれません、、、 一度参考URLを読んでみてください。

参考URL:
http://www.mysql.gr.jp/frame/modules/bwiki/?FAQ
Intel_404
質問者

お礼

回答ありがとうございました。 バージョンですがMySQL 4.0.2xとPHP4.3.10になります。 自ら文字化け解消法に関して調べてみたところSET CHARACTER SET SJISを設定すると文字化けを解消できると見ました。このSET CHARACTER SET SJISを設定するにはどこに何を記入すればよいのでしょうか? よろしくお願いいたします。

関連するQ&A

  • MySQLへの吐き出し日本語が文字化けする

    自分なりに調べてみたのですが,わからないのでお尋ねいたします。 phpmyadminからmysqlに直接日本語を打ち込むと,ちゃんと日本語が表示されます(phpmyadmin内でデータを再度呼び出した時)。が,phpのプログラムからmysqlにデータをinsertし,phpmyadminでデータを参照すると日本語部分のみ文字化けします。 同じプログラムをアイルサーバで動かしていて,そこではうまくいっているのですが,ファーストサーバでうまくいきません。 ファーストサーバの文字コードはEUC-JPですが,phpもプログラムもEUCで書いています。メール送信部分のプログラムは,ちゃんと日本語が出ています。 日本語文字化けの場合に,チェックするべきところは,どういうところがありますでしょうか?。多分,phpというよりはMYSQL側の問題のような気がしないでもないのですが・・・。

    • ベストアンサー
    • PHP
  • ブラウザーで日本語が文字化けする(PHP+MySQL)

    以下の現象に対処したいのですが、どうすればいいか弱っています。 (1) phpMyAdminからSQLでテーブルに日本語を挿入して、 PHPプログラムでブラウザー表示すると文字化け(?????で表示)する。 phpMyAdminでこのデータを表示すると、正しく日本語表示されている。 (PHPプログラム内で直接日本語データを記述して挿入しても同じ現象となる) (2) ブラウザーで日本語を入力してPHPプログラムで受取りMySQLに出力して、 そのデータをPHPプログラムでブラウザー表示すると問題なく日本語が表示される。 phpMyAdminでこのデータを表示すると、文字化け(ぐじゃぐじゃの文字で表示)する。 利用しているホスティングサービスは、お名前・COMのVPSプラン 実行時の環境 MySQL: サーバのバージョン: 5.0.77 サーバ: Localhost via UNIX socket MySQL の文字セット: UTF-8 Unicode (utf8) MySQL の接続照合順序: utf8_unicode_ci PHP : PHP5を使用 phpプログラムは、UTF-8で記述。 出力されるHTMLの文字セット <meta http-equiv="Content-type" content="text/html; charset=utf-8" />

    • ベストアンサー
    • PHP
  • 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
  • phpmyadminで日本語が文字化け

    お世話になります。 現在PHP&MySQLを勉強しています。 書籍に掲載のPHPプログラムを試しているのですが、日記プログラムで、書き込み→読み出しは日本語で問題なく動作していますが、phpMyAdminでデータを表示してみると日本語の部分だけ文字化けしています。 プログラムの動作には問題ないのですが、別のプログラムを試すと、データも文字化けしないことが分かりました。 できれば、phpMyAdminでも文字化けしない方が好ましいのですが、解決方法はないのでしょうか。 文字コードはutf-8で統一したいと思っています。 どなたかお解りになる方、宜しくお願い致します。

    • 締切済み
    • PHP
  • 日本語の文字化け

    APACHE、MYSQL、PHPである本をもとに住所録を作りました。ブラウザには問題なく登録した氏名、住所などが表示されましたが、ターミナルでselect * form テーブル名を実行してみると、日本語が文字化けしています。同様にPHPmyadminのほうでも日本語が文字化けしています。ブラウザにはきちんと表示されるので、この本を読みすすめていく分には問題ないのですが、今後絶対に困ると思われますので、今のうちに直したいです。原因と修正方法を教えて下さい。 apache 1.3.3 MYSQL 4.0.27 PHP 4.4.1 MAC OS X 10.4.8 よろしくお願いします。

  • phpで読み込むmysqlのデータベースが文字化け

    閲覧ありがとうございます。 数年前に作成し、なんの問題もなく運用していた顧客管理のデータベースが昨日から日本語の部分のみ文字化けをおこし????という表示になっています。 サーバーからmysqlのデータを見に行くと、データそのものには問題がなさそうです。 変更は何も加えていません。 サーバー側も見に行きましたが、メンテナンスや変更は行われておりません。 phpからの読み込みに問題があるのかと思ったのですが、新しくテストで入力した文字列に関してはちゃんと表示ができていたので、一体何に問題があるのかわからなくなっています。 読み込みに問題があるとすれば、新しく入力したものに関しても文字化けすると思ったのですが・・・。 考えられる原因と、できる対処はなにかありますでしょうか? phpバージョン PHP5.3.3 mysqlバージョン MySQL5.0 文字コード UTF-8

    • 締切済み
    • PHP
  • wordpressがMySQLに日本語データを格納する際の文字コード

    初めまして、satsukimaと申します。 現在他のブログからの引越し作業を行うべく、wordpressのインストールを終えました。 そして別のブログサイトからのテキストデータをMySQLに流し込もうとしています。 ところが日本語の部分にのみ文字化けが発生してしまいます。 wordpressではMySQLに日本語データを格納する際、どのような文字コードを使っているのでしょうか? 以下の5点を試しました。 1.utf8の端末でMySQLのCLI(mysql client)から"insert into"コマンドを使ってデータを追加しましたが、CLIのselect文とブラウザの両方で確認したところ日本語部分で文字化けが発生します。 2.ブラウザから通常通りに管理画面より日本語の入力を行うと文字化けせずに正常にブラウザに表示されます。 3.しかし正常にブラウザに表示されるデータをCLIのselect文にて確認すると文字化けが発生します。CLI端末の文字コードをutf8、euc、shift-jis、iso-2022-jpで試しましたが、やはり「?????」といったような文字列が表示され、文字化けします。 4.MySQL Query Browserからselect文を実行すると、ブラウザ上で正しく表示されているデータは正常に表示されます。 5.自分で書いたPHPスクリプトでselectを実行しブラウザから表示させると、文字化けします。ブラウザの文字コードをutf8、euc、shift-jis、iso-2022-jpで試しましたが、文字化けします。 どなたかヒントでも頂けないでしょうか。 ぜひ宜しくお願い致します。

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

     WebからMysqlに入力します。それをWebで表示します。日本語を入力し、日本語が表示されます。  そこで質問です。Localで同様のことを実施します。当然出来ます。唯、日本語の部分をSqlでみると化けているようです。  問題はサーバからテキストファイルにデータを落としてLocalにインポートすると文字化けしてしまいます。  Mysqlの設定はUTF8です。データは見えなくても良いのですがインポートを上手くやる方法はないでしょうか、インポートのテキストは「insert 日本語」になっています。  当方、初心者です。宜しくお願い致します。

    • ベストアンサー
    • MySQL
  • MySQL接続データ表示で文字化け

    Dreamweaverを使って、MySQL接続でデータ表示を試みているのですが、日本語が文字化けしてしまいます。 phpMyAdminでデータベース表示したときは問題なく表示されます。 文字コードは,phpMyAdmin、DWともeucで設定しています。 解決するには、どのような手段が考えられますか?よろしくお願いします。 バージョン:MySQL 4.0.27

  • phpでMysqlにデータを書き込むと文字化

    皆様、教えて下さい。 phpで、日本語文字を入力させて、その内容をMysqlデータベースに保存しようと しているのですが、文字化けしてしまってます。(>_<) 素人なので、ネットで色々と方法を検索してみたのですが、よく判りません。 どなかた、教えて頂けますでしょうか? php側: mb_language("Japanese"); mb_internal_encoding("EUC-JP"); $aaa = 'あああ'; $query = "UPDATE database1 SET data2 = '$aaa' WHERE data1 = '$id'"; mysql_query($query); print $aaa; 上記のような内容ですが、画面上では、きちんと「あああ」と表示されている のですが、Mysqlのデータを見ると、文字化けしております。 お手数ですが、どなたか宜しくお願いします♪

    • 締切済み
    • PHP