登録確認のページが文字化け。エンコードの問題?
napaです
coreserverで使っております。
1.44にアップしていただきありがとうございました。
トラブルなどをいろいろ調べても分からず質問させて頂きます。
今、作成した一つの登録フォームを
ブログやHTMLなど複数サイトで、エンコードをサイトにあわせて使用しています。
ところが、登録後の「登録確認ページ」が文字化けすることがあるので困っています。
ちなみにブログはutf8、HTMLはsjisに変えていますが確認画面のエンコードは
utf8のままです。
何がいけないのか。
どのように対処したらいいのか教えてていただけませんでしょうか。
お話の流れからして、「確認画面」というのは、napa様が独自に作られたページではなく、MilkyStepのデフォルトの確認画面、もしくはそれを「デフォルト画面編集」から編集したもの、という仮定で進めさせていただきます。
「デフォルト画面編集」⇒読者登録完了の「編集」をクリック。
表示されるソースの、<head>~</head>に、
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />
が記述されているかご確認ください。
ここが無かったり、文字コードの指定が間違っていると、ブラウザが文字コードを認識できず、文字化けしてしまう場合があります。
言葉足らずですみませんでした。
確認画面はMilkyStepのものです。
確認しましたとことutf8は入っておりました。
ブログとHTMLから何度もテストしましたが、
ブログ(utf8)とHTML(sjis)の両方を比較すると
HTMLからの確認画面が文字化けが多いようです。
確認画面には
最初のメールがスパムメールになっている
場合の解除依頼を加えてありますが、
HTMLに問題はないと思います。
何とかできないでしょうか。
naka
napa 様
.htaccessファイルに文字化け対策を施してみました。
Ver1.44に再度バージョンアップしてみていただけますでしょうか?
これでも文字化けが解消しない場合は、ブラウザの影響もしくはWEBサーバの設定による影響でHTTPヘッダーがUTF8以外に無理やり指定されてしまっている恐れがあります。
(この場合、metaタグでcharsetを指定しても無視されてしまうことがあります。)
この場合はMilkyStep側ではどうしようもないので、サーバ管理者にご相談いただくか、弊社で確認を行っているブラウザ(IE7~8、Firefox3)に変更していただければと思います。
napaです。
htaccessでの対応ありがとうございます。
早速アップデートいたしました。
IE8を使ったテスト結果を近日中に報告させて頂きます。
尚、coreserverを調べてみましたが、
文字コードを強制する設定にはなっていないようです。
napaです。
htaccsccのアップデート後の文字コード実験の結果をお伝えします。
大分頻度は減ったと思いますが
utf8のブログとhtmlの両方で文字化けが残ります。
文字化けの特徴ですが
[__TITLE__]の部分は文字化けしませんが
後は文字化けします。
つまり部分文字化け状態です。
やっぱり何か変だと思います。
napa 様
ちなみに、
>尚、coreserverを調べてみましたが、
>文字コードを強制する設定にはなっていないようです。
これは何をもって判断されたのですか?
それと、ブラウザのキャッシュが残っている場合がありますので、キャッシュを全て削除して確認してみてください。
napaです。
>尚、coreserverを調べてみましたが、
>文字コードを強制する設定にはなっていないようです。
は、事例がないか幾つかの専用掲示板を探しましたが該当する内容がなかったため、
そのような設定にはなっていないと判断しました。
やはり直でサーバー側に聞いた方がよろしいでしょうか?
キャッシュについては、ie8のキャッシュを消すことまでは気が付きませんでしたので、
もう一度トライしてみます。
ただ気になったのは、[__TITLE__]の部分だけ正常で後は全て????になるのが
不思議でした。
今までは全部????の全部文字化け状態でしたので、改善が進み感謝しております。
napa 様
メタタグは、
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />
にしてください。
「utf8」ではなく「UTF-8」です。
文字コードの表記についてご指摘頂きありがとうございました。
しかし、残念ながら全文字化け部分文字化けは改善さておりませんでした。
napa 様
いろいろと調査した結果、ソースの先頭に、
<?xml version=”1.0″ encoding=”UTF-8″?>
を加えることで、上手くいくようです。
この確認画面の出力はxhtmlとして出力しているので、メタタグにて、charsetを指定しても、xhtmlの場合は、主にbodyなどに記述されている文字からブラウザが文字コードを自動判別するようです。
(単純なHTML文書であれば、メタタグのcharsetを参照しに行くのかもしれません)
ですので、本文に自動判別する材料(日本語の文字数)が少なかったり、特殊な文字があったりすると、自動判別に失敗するため、「?」のような記号に化けてしまうようです。
(参考URL:http://www.kanzaki.com/docs/html/xhtml1.html)
今回の場合、厳密にいえばW3Cが推奨するように、上記のXML宣言を最初に行わなければならないのですが、今まで無くても特に問題がなかったので気づきませんでした。
今回の例で、こういう現象もあるということが分かり、開発の一助になりました。
ありがとうございます。
次回のバージョンからは、デフォルトでこの宣言を入れておくようにします。
当面、もし同じような現象が出たら、今回の方法で解決をお願いします。
お休みにもかかわらずご解答いただきココロから感謝です。
今実験してみましたところまだ文字化けが完全に解消されておりませんでした。
ちなみに
同じアドレスをダブらせエラーメッセージを無理に表示させたところ
何度テストしてもブログとHTMLとも文字化けしませんでした。
何度やっても問題なし。
この結果がなにか問題解決の参考になりますでしょうか。
引き続きよろしくお願いいたします。
napa
napa 様
おっしゃるように、エラーメッセージなどの表示は、こちらで確認した時も、何回やっても正常に表示されました。
ちなみに、このコミュニティから、
<?xml version=”1.0″ encoding=”UTF-8″?>
をコピペすると、シングルコーテーション(’)とダブルコーテーション(”)が全角で貼り付けられてしまうので、実際に使用する際は、全て半角に修正してください。
nakaです。
コメントを頂きいろいろテストをさせていただきました。
しかし残念ながら一部ないし全部文字化けは改善されませんでした。
エラーメッセージには文字化けがないということですので
引き続きよろしくお願い申し上げます。
napaです。
製作者様へ
お忙しいところ恐縮ですが、確認画面に文字化け対策の
状況などをお聞かせ頂けるとありがたく思います。
また、
どなたかcoreserverをお使いの方で文字化けの問題を
解決された方がおられましたら、その対策方法を教えて
いただけませんでしょうか。
よろしくお願いいたします。
napa 様
他に同様の現象が見られないため、現在特にこれといった対策はしておりませんが、前回試した時はデフォルトのメッセージだと大丈夫だったと思います。
一度登録完了の画面をデフォルトに戻し、必要な部分だけなるべく全体の文字数を減らさないように変更してみてはいかがでしょうか?
ちなみにデフォルトに戻したいときは、ソースを全て削除して保存すると戻ります。
nakaです。
デフォルトに近い状態に戻すことで解消するとのこと、
ありがとうございす。
文字数を合わせると問題が解決する可能性がある
ということですのでトライいたします。
napaです。
読者登録確認の画面をオリジナルにもどし最初の行に
前出のコードを加えていろいろテストいたしました。
アメーバとFC2でもテストしましたが一部もしくは全部の文字化けを
起こします。(現在はフォームを外しております)
そこで、相談スペースではなくバグ報告に場所を移して投稿したいと思います。
napa 様
こちらでも時間の許す限り引き続き調査を行っていきたいと思います。
とりあえずの回避策として、デフォルト画面を使用せず、独自に登録完了の画面を作っていただき、そちらにジャンプさせるようにすることができます。
「基本設定の編集」から「読者登録完了画面URL」の欄に、ご用意していただいたページのURLを指定することにより可能です。
独自ページへ飛ばす件、了解いたしました。
それでは引き続き解決をお願いいたします。
一応バグの報告にもアップさせて頂きました。
napa