• 締切済み

selectで取得したデータがブラウザ上で文字化けする

質問があるのですがよろしくお願いします。 MySQLのバージョンは4.1です。 とあるテーブルXから「メソッド」という文字のデータをselectで取得して(perlのDBIを使用)、CGIでhtmlに埋め込んで、ブラウザに表示させるプログラムがあるのですが、埋め込むhtmlがAの場合は正常に「メメソッド」と表示されるのに、埋め込むhtmlがBの場合には「・lt;\ッド」のように文字化けする、というような現象が起こっており、困っております。 このような現象が起きるのにははどういった原因が考えられるでしょうか? また解決方法をご存知の方がいらっしゃいましたら、ご教授よろしくお願いします。

みんなの回答

  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.3

AとBだけの違いだけで、(質問には書いてありませんが、Aと言うテーブルとBと言うテーブルですよね?)AとBが同一である場合、どちらかだけに問題が起こることはありえません。 AとBの差はなんですか? 情報が全然足りませんので、ナイスな回答ができません。 >文字コード的には問題ないと思うんです。 本当にそうなのですか? そう思ったということはそれだけの判断材料があったと思いますが、その判断材料を開示してください。 その辺が分からないとこちらからどこが悪いとは言えません。 ちなみに、DBの格納がうまくいったからといって、、DBから取り出して表示するときに文字化けしないとは限りません。

miraikako
質問者

お礼

回答くださった皆様ありがとうございました。 単純にperlのソースが間違っていました。。 もう少し調べてから投稿するようにします。。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

前回の質問で解決したわけではないのでしょうか? 「ソ」=「83 5C」ですよ。

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=2365302
miraikako
質問者

補足

同じような質問で申し訳ないです。 下記の通り、insertやupdate実行時の問題はプレースホルダ(?)で解決し、文字化けせずに格納されるようになったのですが、データを取得する際の文字化けが直らないんです。select実行時に化けてるのか、それとも他のCGIの部分が原因なのか。。 ちなみに「ソ」が原因ではないと思います。 「メメ」とうデータをDBから取得したときにも化けるので「メ」が原因だと思います。しかも書いてあるとおり、特定のテーブルから引き出したときに文字化けするのです。Aというテーブルから「メメ」と取り出しても化けないのに、Bとうテーブルから「メメ」と取り出したときは文字化けしたりするのです。。下に文字コードの問題ではないと思うと書いちゃいましたが、やっぱ文字コードかもしれません。埋め込み先のhtmlはShift_JISです。

  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.1

MysqlとHTMLとCGIの文字コードはどのようになっていますか?

miraikako
質問者

補足

文字コード的には問題ないと思うんです。 insertやupdateが文字化けせずにちゃんとDBに書格納されるので。。