http://www.tokitokurasu.jp/m/kaiin.html

携帯電話のauから、↑この画面にアクセスして登録ボタンを押すと画面が文字化けします。
しかし、解除ボタンを押すと文字化けしません。
アドレスを入れないで登録ボタン、解除ボタンを押した場合は同じエラー画面が表示されますが、登録側だと文字化けし、解除側だと
文字化けしないので、どこがおかしいのか分からずに困ってます。

どなたかお分かりになる方が居るようでしたら教えてください。

回答の条件
  • 1人20回まで
  • 登録:
  • 終了:2009/03/14 01:10:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答5件)

id:gami No.1

回答回数36ベストアンサー獲得回数1

ポイント20pt

やってみましたが、文字化けしませんでした。

環境はFirefox3.0.7 + MacOSX10.5.6です。

id:and_sin

携帯電話のauから確認してみてください。

2009/03/07 01:30:31
id:gami No.2

回答回数36ベストアンサー獲得回数1

ポイント20pt

失礼しました。

文字エンコーディングがEUC-JPになっているのに、メタタグではShift-Jisに指定されているようです。

このせいでは?

id:and_sin

確かにそのようになってますが、解除画面では文字化けせず、登録画面では文字化けしてしまいます。

2009/03/07 02:35:56
id:fut573 No.3

回答回数196ベストアンサー獲得回数55

ポイント20pt

コメントが付けられないので解答欄にて。

半角カタカナが悪さしているのかもしれません。

登録画面では半角カタカナが沢山使用されているようです。

解除画面ではカタカナが全て全角カタカナになっています。

半角カタカナは環境によっては文字化けします。

auのe-mailも駄目なはずです。

半角カタカナを全て全角カタカナに変換したら、解決するかもしれません。

id:gami No.4

回答回数36ベストアンサー獲得回数1

ポイント20pt

>解除画面では文字化けせず、登録画面では文字化けしてしまいます。

自動文字コード判定が成功して、解除の方はEUC-JPと認識されているのではないでしょうか?

submitのラベル文字をともに[OK]にして、エラー画面表示での結果に差異がでるか確認してみてください。

id:rryu No.5

回答回数30ベストアンサー獲得回数2

ポイント20pt

とりあえず状況的にはこんな感じになっているようです。


・コンテンツ自体の文字コードはEUC-JP

・レスポンスヘッダでの文字コードの指定はEUC-JP

・HTMLのmeta要素での文字コードの指定はShift_JIS

・「解除」の方ではContent-Lengthが出力されておらず、chunkedエンコーディングになっている

・「登録」の方ではContent-Lengthが出力されている


文字化けが発生する原因のひとつとして、文字コードの誤認というのがあります。

ここからは完全な推測になりますが、コンテンツを一気に読み取れないchunkedエンコーディングではレスポンスヘッダでの文字コードの指定しか使わず、一気に読み取れる場合はHTMLのmeta要素での指定も使う(そっちの方が正しいものとして扱う)ということになっていれば、そういう現象が発生します。今回の場合、meta要素での指定が間違っている為、それが採用されてしまうと化けてしまう訳です。


こういう端末側の謎の仕様せいで変な挙動になる場合は、とりあえず仕様的に正しい状態にするのが一番です。

auだけではなくi-modeも視野に入れるとすると、文字コードはShift_JISでContent-Lengthを出力するようにするのがベターです。

以下のようにすれば意図通りに動作するようになると思います。

・CGIプログラムの出力をShift_JISに変換して出力するようにする

・Content-Typeに「text/html; charaset=Shift_JIS」を指定する

・Content-Lengthを出力するようにする

・htmlのmeta要素は削除する

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

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

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

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

回答リクエストを送信したユーザーはいません