- 締切済み
予約システムの文字化け
予約機能があるサイトをロリポップのサーバーで運営していましたが、この度、海外のbluehostに移転しました。サイトは問題なく表示が出来、予約も受け付けられるのですが、私が受け取る予約メールとご予約された方が受け取る確認メールが文字化けしてしまいます。サーバー運営者に質問したところ、CGIのヘッダーのエンコードをContent-Type: text/plain;charset=iso-8859-1にする必要があると言われたのですが、どの様に設定したらいいのか分かりません。CGI内を見たところConfirm DataとErrorにContent-type: text/html\n\nという文字を見つけたので、その個所をContent-Type: text/plain;charset=iso-8859-1に変えたりしてみたのですが、状況は悪化しました。どの様に設定すれば良いのか、分かる方がいらっしゃったら教えてください。よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- neko2koban
- ベストアンサー率39% (49/125)
開示いただいたところでは判断つけることは出来ませんでした。 一般に公開されているものかと思ったのですが、専用に作成したものですから 直接見ることが出来れば良いのですが、現状では作成者へ相談してもらうしかないでしょうね。
- neko2koban
- ベストアンサー率39% (49/125)
問題はWEB上の表示ではなく、併せて送信するメールでの問題ですね? メール作成・送信に関する部分を特定してメールヘッダー作成の部分を修正することになるのでしょうね。 「Content-type: text/html\n\n」は、html形式のメール作成しているなら合っているのですが WEB表示の作成部分と思われますよ。 ちなみに 「Content-type: text/html\n\n」の部分は、WEB上の表示ではと思えるので 状況が悪化したとはWEB上でしょうかメールでしょうか? 文字化けするのは件名と本文のどちらでしょうか? よかったら、予約システムについて入手先を教えてもらえませんか。
補足
neko2koban様 ご回答頂きましてありがとうございました。 最初の状態で、件名は文字化けしませんでした。 しかし、Mail CGIファイルを分かりもせずに変更したところ、件名も文字化けしたので、最初の状態に戻しました。 悪化したというのは情報を入力後、送信で確認ページに飛んで、その後にもう一度送信でこちらに予約メールが届くようになっているのですが、その確認ページで文字化けしたり、そのページにさえ飛ばなくエラーメッセージが表示されたりしました。 予約システムは知り合いの方に制作していただき問題なく機能していたのですが、今回サーバーの移転に当たり、新しいサーバー(海外のbluehost)にアップしたところ文字化けなどの問題が起こるようになりました。 予約ページ以外も文字化けをしたのですが、Htmlのcontent="text/html; charset=をShift-JISからUTF-8に変更したところ、正常に表示されるようになりました。 ホスティング会社に連絡したところ下記の返事を受け取りました。 私のサイトにもこの様なエンコーディングをヘッドに入れる必要があるのと、UTFが私のサイトにとって正しいエンコーディングか分からないと返事をもらったのですが、あまり指摘してもらっている意味が分かっていません。 もし理解できるのであれば、私のサイトをどの様に変更する必要があるのか教えて頂けませんか? よろしくお願いいたします。 --------------------------- Please take a look at this PHP mail function: <?php function mail_utf8($to, $subject = '(No subject)', $message = '', $from) { $header = 'MIME-Version: 1.0' . "\n" . 'Content-type: text/plain; charset=UTF-8' . "\n" . 'From: Yourname <' . $from . ">\n"; mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', $message, $header); } ?> Notice how they set the encoding directly in the header. You need to do that with your mail.cgi script. Also, i don't know if UTF-* is the proper encoding for your website, you should google what type of encoding you need to use. -----------------------------------