• 締切済み

PHP4からPHP5にしたときのDB文字化けについて

よろしくお願い致します。 すでに、PHP4で作っていたサイトで、DBにもいろいろと登録していたのですが、PHP5にしたい事情が出てしまい、PHP5にしました。 すると、すでに登録されていた、DBの内容が文字化けしてしまいました。 PHP4(UTF8)+MySQL5(UTF8) → PHP5(UTF8)+MySQL5(UTF8) 情報足りませんでしたら申し訳ないです、申し付けて下さい。 phpMyAdminから見たときは、すでに入っていたDBの内容は文字化けはしていないのですが… 次にPHP5で新しく登録した場合は、サイトでの表示は文字化けしないのですが、次はphpMyAdminで見ると文字化けしていました。 php.iniの設定も同じにしてます、Apacheのconf設定なども見たのですが、文字化けは解消しませんでした。 よろしくお願い致します。

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

みんなの回答

  • TA-HT81S
  • ベストアンサー率39% (72/184)
回答No.1

> サイトでの表示は文字化けしないのですが phpMyAdminの設定がおかしいのだと思います。 コマンドラインのmysql上でも化けますか? その場合、set client_encoding to で、クライアントの文字コードを変えてもだめですか?

karrii
質問者

お礼

アドバイス、ありがとうございます。 お返事遅くなってしまい申し訳ありません。 phpMyAdminの設定は具体的にどこの変がおかしいのかが、わからなかったのですが Language:japanese(utf8) MySQLの文字セット: UTF-8 Unicode (utf8) MySQL 接続照会順序:utf8_icelandic_ci となっております。 set client_encoding to なんですが、 MySQLなので、set names utf8で、文字コードセットを変えてみたのですが コマンドライン上でも、PHP4の時に入れたデータもPHP5で入れたデータも文字化けしていました。 やはり、PHP4で入れたデータはあきらめたほうが早いのですかね…

関連するQ&A

  • mysql-phpでの文字化け

    自分のパソコンでは文字化けせず、正しく表示されているのですが、 niftyのデータサービスを使ってphpで表示すると文字化けします。 my.iniとmy.cnfの問題と思いniftyサーバーにftpで接続し探したがファイルが見つかりません。 mysqlとphpはutf8で設定しています。 niftyサーバーのmysqlは5、phpMyAdminは2,11,9です。

    • ベストアンサー
    • MySQL
  • 文字化け回避できません

    MYSQL入門以前という本を購入し、MYSQLとPHPの勉強をしています。例題である住所録をPHPを使って作成しました。フォームから氏名等登録すると、登録された内容がブラウザへ表示される形になっています。ブラウザには文字化けも無く日本語がきちんと表示されているのですが、ターミナル、PHPMyadminでテーブルの内容を見てみると文字化けしています。 apache 1.3.3 MYSQL 4.0.26 PHP 4.4.1 Mac OS X 10.4.8 my.cnfの内容 [mysqld] default-character-set=sjis [mysql] default-character-set=sjis [mysqldump] default-character-set=sjis php.iniのdefault_charset部分 default_charset="Shift_JIS" ターミナル→ウィンドウ設定→ディスプレイ部分 文字セットエンコーディングUTF-8 PHPMyAdmin 言語 UTF-8 文字化けを回避するにはどれをどうすればいいのか素人なので全然わかりません。教えてください。

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

    サーバはさくらインターネットを利用してます。 レンタルサーバから専用サーバに移転したのですが、 専用サーバではphpMyAdminで日本語データの文字化けが起きます。 専用サーバのphpMyAdminからDB作成の際、下記の設定で行い、 MySQLの文字セット UTF-8 Unicode (utf8) MySQLの接続照合順序 utf8_unicode_ci DB の照合順序 utf8_unicode_ci レコードをINSERTする際、下記のように文字コードを指定し、 $sql=mb_convert_encoding($sql,"EUC-JP","EUC-JP"); execute_sql($con, $sql); 実行したら、phpMyAdmin内で日本語データが文字化けしました。 サイト内で表示しているDBデータ(日本語)は文字化けしませんでした。 DB の照合順序をutf8以外(ujis_japanese_ciなど)として、 DBを作った場合、レコードをINSERTしたら、サイト内のDBデータも phpMyAdmin内データもどちらも日本語が文字化けします。 また、レンタルサーバのphpMyAdminからDBデータをエクスポートして、 専用サーバのphpMyAdminからインポートした場合、 読み込むDBデータファイルの文字コードをUTF-8にしなければ、 phpMyAdmin内で日本語データが文字化けしてしまいます。 ただ、UTF-8にしてインポートしてもphpMyAdmin内では 文字化けしませんが、サイト内で表示しているDBデータは 文字化けします。 専用サーバのphpMyAdminから データを日本語の文字列に編集・更新したら、 phpMyAdmin内ではそのデータに関しては文字化けなく表示されますが、 サイト内ではそのデータは文字化けしてしまいます。 専用サーバ情報は下記の通りです。 【専用サーバ】 OS:CentOS 5 Apache 2.2.3 PHP5.1.6 DBサーバ:MySQL 5.0.77 アップしているファイルの文字コード:EUC 分かる方、ご回答、よろしくお願いいたします。

    • 締切済み
    • PHP
  • 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
  • PHPとMySQLの文字化けに関して

    PHPとMySQLの文字化けに関して PHPとMySQLを利用したホームページ作成の勉強をしている初心者です。 現在、レンタルサーバーをお借りして、作成したページを表示させようとしておりますが、 文字化けで悩んでおり、解決策をご教授いただきたいと思います。 まず症状についてですが、phpMyAdminを利用してデータを挿入すると、 phpMyAdminでは文字化けしませんが、作成したホームページでは文字化けが発生します。 (???が続くような文字化けです。) 一方、データ挿入用のページを作成し、そこから挿入を行うと、 phpMyAdminでは文字化けが発生しますが、 ホームページ上では一応日本語表示されます。 (phpMyAdminでの文字化けは、こんな感じです。 ã?TMã??ã?¬ã?¢ã??ã?? また、上手く表示できない物もあります。) 希望としては、全ての文字コードをutf-8に統一させたいのですが、 データベース関連の文字コードの設定が出来ず、解決が出来ません。 以下、現在の状況と、素人ながら試してみた点などについて記載します。 (情報の不備などございましたら、お手数ですがご指摘ください。) --------------------------------------------------------------- ■phpinfo関連 □PHP Version 5.1.6 □MySQL Client API version 5.0.82sp1 □default_charset Local Value UTF-8 Master Value no value ■phpMyAdmin関連 □phpMyAdmin Version 2.11.10 □status の結果 #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'status' at line 1 □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 latin1 character_set_system utf8 character_sets_dir /usr/share/mysql/charsets/ □set character_set_server = utf8; の結果 SQL は正常に実行されました (クエリの実行時間 0.0002 秒) と出ますが、変更されません。 □phpMyAdmin上のデータベースの表 データベース 照合順序 DB1 utf8_general_ci DB2 utf8_general_ci information_schema utf8_general_ci 合計: 3 latin1_swedish_ci ■.htaccess関連 .htaccessを設定してFFFTPでアップロードしても、表示されません。 また、別名ファイルでアップし、アップロード先で名称変更すると、消えてしまいます。 ■その他 ファイル作成にはTeraPadを利用し、 UTF-8Nにて保存しております。 ホームページのメタタグには、 <meta http-equiv="content-type" content="text/html; charset=utf-8" /> というものを設定しております。 php.iniやmy.cnf の設定で解決するとの情報もあり、 当該ファイルを探してみましたが、見つけることができませんでした。 --------------------------------------------------------------- なお、レンタルサーバーでの利用では、 .htaccessやphp.ini、my.cnfの設定が出来ない場合もあるそうですので、 そのような場合、どのような解決法があるのでしょうか? どうぞよろしくお願いいたします。

    • 締切済み
    • PHP
  • PHP+MySQL 文字化けについて

    今、PHPとMySQLで掲示板を作っているのですが、どうも文字化けばかりしてしまいサイトを調べるのも苦痛になってきたので質問します。 MySQLもPHPも文字コードUTF-8で作る上で文字化けしないぞ! という設定を載せてくださいm(_ _)m

    • ベストアンサー
    • 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
  • MySQL4.0 UTF-8 での文字化け

    こんにちは MySQL4.0 & PHP4.3 でHTMLは文字コードUTF-8で記述しています。 MySQL4.0の文字コード設定はレンタルサーバーのため不明ですが、 phpMyAdminで、utf-8にてデータを入力しました。 select文でMySQLのデータを拾ってくると文字化けはおきないのですが PHP経由でPOSTされた値を使ってinsertやupdateをかけると文字化けしてしまいます。phpMyAdmin上でも文字化けしていますが、phpMyAdminをEUC-JPにすると、入力した文字が文字化けせずに表示されます。 (が、すでに入っているデータは文字化けします、、、、) 入力画面は metaでUTF-8宣言をしており、ブラウザ(IE)上でエンコードを確認するとUnicode(UTF-8)になっています。4.1みたいにset names を指定するとうまくいくかな?と思ったのですが、やっぱり4.0なので結果は変わらず、でした。PHPのスクリプトそのものは、UTF-8で記述しているのですが、、、、 どういった項目をみなおせばいいのでしょうか?

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

    phpMyAdmin上ででテーブルを作成し、データを挿入したところ、 phpMyAdmin上であれば、正常に表示されます。 しかしPHPでセレクト結果を表示したところ、 マルチバイト文字が文字化けします。 次にMySqlCommandLineClientよりデータを挿入し、 PHPでセレクト結果を表示すると文字化けはしません。 しかしphpMyAdmin上で参照すると文字化けしています。 文字設定がさっぱりわかりません....よろしくお願いします。 MySQL 4.1.7 PHP 5.02 phpMyAdmin 2.6.0

    • ベストアンサー
    • PHP

専門家に質問してみよう