現在携帯電話のメールフォームを作成し使用しているのですが

データベースへ登録の際文字化けが発生しうまく登録できず若干困っております。

プログラムに詳しい方でここが問題ではないか?

という意見がありましたらよろしくお願いいたします。

ページの環境状況、データベースへの登録状況ですが

●私と友人のソフトバンク携帯ですと文字化けなく登録できているようです。
●ページの文字形式ですがSJISで登録してあります。
●データベースはMYSQLです。

問題のあるサイトです。

http://oskuni7.sakura.ne.jp/auction_mobile.php

サイトのソース

http://oskuni7.sakura.ne.jp/keitai1.txt

問題のあるサイトの登録ページのソース

http://oskuni7.sakura.ne.jp/keitai2.txt

よろしくお願いいたします。

回答の条件
  • URL必須
  • 1人5回まで
  • 登録:2008/11/10 11:45:29
  • 終了:2008/11/17 11:50:02

ベストアンサー

id:pahoo No.2

pahoo回答回数5960ベストアンサー獲得回数6332008/11/10 14:27:50

ポイント23pt

#1のコメント:

1、1番ですが文字コードSJISでデータ表示しております。

いいえ、そうではなく、MySQLの設定はどうなっているか確認してください。具体的な手順は、#1の参考サイトをご覧下さい。

SJISで表示しようとしているのは、ソースコードから明らかですので。


2、登録の際の文字コードSJISになっております。

いいえ、そうでなく、PHPの環境変数 mbstring.http_input がどうなっているか確認してください。具体的な手順は、#1の参考サイトをご覧下さい。

SJISで登録しようとしているのは、ソースコードから明らかですので。


データの登録/参照の前に mb_detect_encoding でトラップを仕掛け、文字コードがどうなっているか調べてみてはいかがでしょう。


※設定された回答回数の上限になりました。さらにフォローが必要でしたら、コメント欄を開けていただくか、回答回数を増やしてください。

id:aiomock

ご回答ありがとうございます。試してみます。

2008/11/14 03:24:07

その他の回答(3件)

id:pahoo No.1

pahoo回答回数5960ベストアンサー獲得回数6332008/11/10 11:57:23

ポイント23pt
  1. MySQLの文字コードの設定が SJIS 以外になっていませんか?
  2. PHPの http_input の設定が SJIS 以外になっていませんか?

参考サイト

id:aiomock

ご回答ありがとうございます。

1、1番ですが文字コードSJISでデータ表示しております。

2、登録の際の文字コードSJISになっております。

携帯電話au docomoの場合データの様子を見ていないのですが携帯電話などの問題等は条件として考えられますでしょうか。

もし知っている方おりましたらよろしくお願いいたします。

2008/11/10 14:00:50
id:pahoo No.2

pahoo回答回数5960ベストアンサー獲得回数6332008/11/10 14:27:50ここでベストアンサー

ポイント23pt

#1のコメント:

1、1番ですが文字コードSJISでデータ表示しております。

いいえ、そうではなく、MySQLの設定はどうなっているか確認してください。具体的な手順は、#1の参考サイトをご覧下さい。

SJISで表示しようとしているのは、ソースコードから明らかですので。


2、登録の際の文字コードSJISになっております。

いいえ、そうでなく、PHPの環境変数 mbstring.http_input がどうなっているか確認してください。具体的な手順は、#1の参考サイトをご覧下さい。

SJISで登録しようとしているのは、ソースコードから明らかですので。


データの登録/参照の前に mb_detect_encoding でトラップを仕掛け、文字コードがどうなっているか調べてみてはいかがでしょう。


※設定された回答回数の上限になりました。さらにフォローが必要でしたら、コメント欄を開けていただくか、回答回数を増やしてください。

id:aiomock

ご回答ありがとうございます。試してみます。

2008/11/14 03:24:07
id:YOSIZO No.3

YOSIZO回答回数64ベストアンサー獲得回数12008/11/10 14:44:35

ポイント22pt

PHPの内部処理コードがSJIS以外になっていないでしょうか?

mb_internal_encoding()で内部処理コードを取得・設定できますので、DBからの入出力の際の文字コードを適切に変換してやる必要があるかと思います。

http://php.benscom.com/manual/ja/function.mb-internal-encoding.p...

id:aiomock

ご回答ありがとうございます。試してみます。

2008/11/14 03:24:11
id:mugitaro32 No.4

mugitaro32回答回数6ベストアンサー獲得回数02008/11/15 12:58:18

ポイント22pt

mb_language("ja");

mb_internal_encoding("SJIS");

$from_email = "mail@xxxxxx";

$headers = "From: {$from_email}\n";

$headers .= "Content-Type: text/plain; charset=\"ISO-2022-JP\"\n";

$headers .= "Content-Transfer-Encoding: 7bit\n";

$headers .= "X-Mailer: PHP/" . phpversion() . "\n";

mail($to, mb_encode_mimeheader(mb_convert_encoding($title, "ISO-2022-JP", "JIS, eucjp-win, sjis-win,UTF-8")), mb_convert_encoding($main, "ISO-2022-JP", "JIS, eucjp-win, sjis-win,UTF-8"), $headers);

こんな感じでどうですか?

http://q.hatena.ne.jp/

id:aiomock

ありがとうございます。

2008/11/15 14:07:53

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません