- 締切済み
フォームメールを受信すると文字化けをします。
携帯サイトにCGIフォーム(CGIの文字コードは全てshift_jis)を設置しています。 iMacや、iPatや、ThanderBirdで、受信をすると、すべて、文字化けします。 Macで、POPを返さない方が文字化けをしないと聞いたので、受信アドレスをgmailアドレスに変えましたら、Mac系では、文字化けがなくなりました。 が、同時に、普通のメールアドレスを設置し、ThanderBirdで受信をしましたら、やはり文字化けをします。 ThanderBirdのエンコード設定は、ISO-2022-JP となっていて、少し調べましたら 「インターネットでは7bitの文字コードでやりとりするのが標準なので、日本語の場合は7bitの「JIS(ISO-2022-JP)」という文字コードを使うよう定められている。Shift-JISやEUCは8bitの文字コードなので、送信の際、メールソフトがこれをJISに変換するのが普通だ。」とのこと。 半角カタカナなどは、含まれていないのですが、やはり、フォームメールを受け取りますと、文字化けをしてしまいます。 届いたメールは、タイトルは正しく表記され、中身が、文字化け。 メールのエンコードをShift-JISに変換すると、逆に、タイトルが文字化けし、本文(中身)が、正しく表記されます。 OUTLOOKなどWindowsの仕様のものを試していないのですが、 何かを修正すると、文字化けせずに、閲覧できるのか、もし、方法があれば、おおしえいただければと思いました。 使っていますCGIフォームは http://www.kurohama.net/c5.shtml 今は、Shift-JISですが、UTF-8に変換はできるようです。 どうぞ よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- ORUKA1951
- ベストアンサー率45% (5062/11036)
Shift_JISにするとCGIが動作しなくなるのは、ほとんど常識です。 スクリプト内に ―ソЫ噂浬欺圭構蚕十申曾箪貼能表暴予禄兔喀媾彌拿杤歃濬畚秉綵臀藹觸軆鐔饅鷭 あるいは ァА院魁機掘后察宗拭繊叩邸如鼻法諭蓮僉咫奸廖戞曄檗漾瓠磧紂隋蕁襦蹇錙顱鵝 な文字入ってたら必ず文字化けします。 したがって、スクリプト自身は、UTF-8ないし、EUC-JPで作成します。 それと、フォームやメールをどの文字コードで送信するかはまったく別の問題です。 メール本文は、iso-2022-jpで送ります。【必須】 メールのヘッダ部に日本語が含まれる場合も、iso-2022jpに変換した上でBASE64エンコードしなければなりません。 この方、あまり詳しくはないみたいです。
お礼
ご返答をありがとうございました! エンコードについて、まったくわかっていずに フォームとメールの関連が、また、理解できていずにいたので、とてもわかりやすいご説明をありがとうございました。 とりあえず、フォームの文字コードをUTF-8に変換してみます。 どうもありがとうございました! とりあえず、