みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

PHPでMySQLのデータを読み込んだ際の文字化けについて

宜しくお願いいたします。
PHPからMySQLのデータを参照して、HTML上に文字を表示させたら、文字化けしてしまいます。具体的には
・・・ログインIDとパスワードを送信して、その情報をMySQL上のデータベースで参照し、そのレコードにあるユーザー名をHTMLで表示する・・・
といった事を行います。ログインIDはURLからGETで送って、パスワードはPOSTで送っています。送られてきたIDとパスワードで、
<?php
$userlist = mysql_query("select * from テーブル名 where id = '$ID' and password= '$password'",${接続ID});
$user = mysql_fetch_array(${userlist});
?>
といった形で『$user』にレコードを配列として代入して、HTML上の必要な箇所で、
<?php print "${user['name']}" ?>
といった形でそのIDとパスワードのユーザー名を表示しています。ところが、実際にブラウザで表示させると、データベースには
『アドミニストレーター』
とカタカナで入力しているのですが、HTMLでは、
『・「・ノ・゜・ヒ・ケ・ネ・・シ・ソ。ン』
と化けて表示されます。
HTML上の文字などは特に化けていません。データベースから抽出した文字だけが化けてしまいます。

どなたか、この現象を解決するヒントを教えて下さい!お願いします!!

投稿日時 - 2005-02-26 22:09:19

QNo.1240194

困ってます

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

データベースから取り出したものと、HTMLのエンコードが違うのでしょう。
どの時点で異なっているのかは、確かめるしか方法はないでしょう。

最終的に出力しているHTMLのエンコードはなんでしょうか?
最初に送られてきているデータのエンコードはなんでしょうか?
データベースに格納する際のエンコードはなんでしょうか?
データベースから取り出した際のエンコードはなんでしょうか?

これらを確認すればどこの時点でエンコードが違っているかわかるとおもいます。
そのポイントがわかれば、そこでエンコードするなりいろいろ対応できるとおもいます。

一応、「こうなはず」ではなく、実際に確かめてみるのをお勧めします。
サーバの設定で思いもしていなかった状態であることもよくある話ですから

投稿日時 - 2005-02-26 23:58:02

お礼

ありがとうございます!
早速確認してみたら、入力するフォームが『EUC-JP』で、自分で作った出力用のHTMLが『Shift-JIS』になっていました(^_^;)
入力フォームをShift-JISにして再度入れなおしたらバッチリ直りました!
本当に助かりました!ありがとうございますm(__)m

投稿日時 - 2005-02-28 09:25:14

ANo.1

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問