みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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";と表記しております。

投稿日時 - 2008-12-25 08:48:47

QNo.4581573

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

≫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">
を加える。

投稿日時 - 2008-12-25 15:19:42

補足

解決しました。

投稿日時 - 2008-12-27 11:32:09

お礼

ORUKA1951様、度々すみません。
本当に申し訳ないのですが勘違いしておりました。
フォーム前のページに文字化けはあるか、と聞かれているのかと思っていました。
フォームに入った最初のページの事がHTML自体って事だったのですね...。
私が馬鹿なばっかりに申し訳ございません。

もう、本当に本当に申し訳ございません。。
ひとつ前の質問を理解しなおした上で回答させていただきます。


>metaで文字コードをEUCにしソースも変えると
>→auで文字化け
>>これは、HTML自体がですか?それとも処理後のHTML?

●HTML(フォーム1ページ目の入力画面)も、処理後(入力した内容を確認する画面)も化けてしまいます。
※docomoとsoftbankはオールクリアでした。



>metaで文字コードをShift_JISにしソースも変えると
>→docomoとsoftbankで文字化け
>>これは、HTML自体がですか?それとも処理後のHTML?

●HTML(フォーム1ページ目)は3キャリア共化けません。処理後(確認画面)はdocomoとsoftbankで文字化けします。


>そもそも単純なHTMLでの表示は?
フォーム以外のページと言う事でしょうか?それでしたら化けてはおりません。

本当にもうしわけございませんが、お力をお貸しいただけると幸いです。

投稿日時 - 2008-12-25 16:20:32

ANo.2

>metaで文字コードをEUCにしソースも変えると
>→auで文字化け

 これは、HTML自体がですか?それとも処理後のHTML?

>metaで文字コードをShift_JISにしソースも変えると
>→docomoとsoftbankで文字化け

 これは、HTML自体がですか?それとも処理後のHTML?

 そもそも単純なHTMLでの表示は?

投稿日時 - 2008-12-25 13:52:17

お礼

再回答していただきありがとうございます。
HTML自体は文字化けはしておりません。
フォームに入り、入力もできる状態で確認ボタンを押すと
入力した内容が確認できるのですが、そこで文字化けを起こしてしまってます。
単純なHTMLでの表示で文字化けはしていません。
補足要求の的を得た回答になっていますでしょうか...
素人に毛が生えた程度のスキルですのでご迷惑おかけします。
宜しくお願いします。

投稿日時 - 2008-12-25 14:08:37

ANo.1

≫因に、下記の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の記述と実際の文字コードを一致させることから始めてください。

投稿日時 - 2008-12-25 09:23:24

お礼

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

metaで文字コードをEUCにしソースも変えると
→auで文字化け

metaで文字コードをShift_JISにしソースも変えると
→docomoとsoftbankで文字化け

フォーム確認画面で化けてしまいます。

投稿日時 - 2008-12-25 09:52:44

あなたにオススメの質問