- 締切済み
docomoとsoftbankで確認画面が文字化けしてしまいます。
このカテゴリーで良いのか迷ったのですが、宜しくお願いします。 携帯サイトをつくっておりまして、 SSLのフォームをつくってみたのですが 入力を終えて、確認ボタンをクリックし 確認画面へ移ると、docomoとsoftbankで文字化けを起こしてしまいます。(auはOKでした) dreamweaverCS3を使用しており、エンコーディングもShift_JISへ変更しております。 因に、下記のmeta表記にしましたところ、docomoとsoftbankで文字化けはございませんでしたが、 auでは確認画面どころか、入力フォームのページまで文字化けしてしまいました。 <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> <meta http-equiv="Content-Style-Type" content="text/css"> 何が原因なのでしょうか...。 どなたかお分かりになる方、お助け下さい。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <body> <form method="post" action="/www.△△△△△.jp/freecgi/○○○○○/index.cgi"> <!-- ============================== 各種設定 ============================== --> <!-- システム設定--> <input type="hidden" name="_profile_" value="XXXXXXXX"> <!-- 共通設定 (確認画面/完了画面) --> <input type="hidden" name="_css_url_" value="/www.△△△△△.jp/○○○○○/○○○○○/default.css"> default.cssの最初には @charset "Shift_JIS";と表記しております。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- ORUKA1951
- ベストアンサー率45% (5062/11036)
≫HTML自体は文字化けはしておりません。 ≫フォームに入り、入力もできる状態で確認ボタンを押すと ≫入力した内容が確認できるのですが、そこで文字化けを起こしてしまってます。 CGIから出力されるHTMLにおいて、そのHTMLに使用されている文字コードと、そのブラウザが判断した文字コードの差が原因でしょう。 CGIから出力されるHTMLに文字コードの指定が無い場合、HTTPサーバーの応答ヘッダを使用するか、Shift_JISとして処理するか、あるいはリンク元のHTMLの文字コードを使うかはブラウザの実装によってことなります。 【対策】 最初のHTMLは文字化けしないのでしたら、CGIの処理を考えてEUCで統一したほうが楽でしょう。 ★ 最初のHTMLもEUCで記述する。 ★ そきにへのリンクにて、 <form action="AAA.cgi" method="post" accept-charset="euc-jp">とする。 ★CGIもEUCで記述する。 この場合、内部処理でもeucに変換して処理が行われているか確認しておくこと。 ★HTTP応答ヘッダに print: Content-Type: text/html; charset=euc-jp; を加えること。 ★出力されるHTMLの<head></head>内に <meta http-equiv="content-type" content="text/html; charset=euc-jp"> を加える。
- ORUKA1951
- ベストアンサー率45% (5062/11036)
>metaで文字コードをEUCにしソースも変えると >→auで文字化け これは、HTML自体がですか?それとも処理後のHTML? >metaで文字コードをShift_JISにしソースも変えると >→docomoとsoftbankで文字化け これは、HTML自体がですか?それとも処理後のHTML? そもそも単純なHTMLでの表示は?
お礼
再回答していただきありがとうございます。 HTML自体は文字化けはしておりません。 フォームに入り、入力もできる状態で確認ボタンを押すと 入力した内容が確認できるのですが、そこで文字化けを起こしてしまってます。 単純なHTMLでの表示で文字化けはしていません。 補足要求の的を得た回答になっていますでしょうか... 素人に毛が生えた程度のスキルですのでご迷惑おかけします。 宜しくお願いします。
- ORUKA1951
- ベストアンサー率45% (5062/11036)
≫因に、下記のmeta表記にしましたところ、docomoとsoftbankで文字化けはございませんでしたが、 意味は理解されてますか?? metaで文字コードをEUCにすれば、当然ソースもEUCでなきゃダメですし、Shift_JISにすれば、それにする。 CGIは、文字化け(違う理由による)や文字の処理の混乱を防ぐためEUCで記述することが望ましいのですが、そのためには入力された内容をEUCに変換しないとなりません。当然、そのままでHTMLを出力すれば、その(CGIから出力される)HTMLの文字セットはEUCになりますから、そのHTMLのmetaはEUCにするか、Shift_JISに変換してHTMLを書き出すか・・・ CSSはHTMLにもCSSにも指定が無ければ、現在の文字コードが適用されるはずですが、内部に日本語(たとえばMS 明朝とか)が無ければ、表示の文字化けには影響ないでしょう。配置は崩れる可能性があります。 いずれにしろ、metaの記述と実際の文字コードを一致させることから始めてください。
お礼
回答ありがとうございます。 metaで文字コードをEUCにしソースも変えると →auで文字化け metaで文字コードをShift_JISにしソースも変えると →docomoとsoftbankで文字化け フォーム確認画面で化けてしまいます。
お礼
ORUKA1951様、度々すみません。 本当に申し訳ないのですが勘違いしておりました。 フォーム前のページに文字化けはあるか、と聞かれているのかと思っていました。 フォームに入った最初のページの事がHTML自体って事だったのですね...。 私が馬鹿なばっかりに申し訳ございません。 もう、本当に本当に申し訳ございません。。 ひとつ前の質問を理解しなおした上で回答させていただきます。 >metaで文字コードをEUCにしソースも変えると >→auで文字化け >>これは、HTML自体がですか?それとも処理後のHTML? ●HTML(フォーム1ページ目の入力画面)も、処理後(入力した内容を確認する画面)も化けてしまいます。 ※docomoとsoftbankはオールクリアでした。 >metaで文字コードをShift_JISにしソースも変えると >→docomoとsoftbankで文字化け >>これは、HTML自体がですか?それとも処理後のHTML? ●HTML(フォーム1ページ目)は3キャリア共化けません。処理後(確認画面)はdocomoとsoftbankで文字化けします。 >そもそも単純なHTMLでの表示は? フォーム以外のページと言う事でしょうか?それでしたら化けてはおりません。 本当にもうしわけございませんが、お力をお貸しいただけると幸いです。
補足
解決しました。