アプリ版:「スタンプのみでお礼する」機能のリリースについて

皆様お世話になります。ホームページ閲覧時の文字化けについて質問です。
Safari4.0.4を使用しています。特定のホームページ閲覧時に文字化けがします。テキストエンコーディングはデフォルト設定。環境設定でデフォルトをShift JISにしています。文字化けしたホームページで、一度、テキストエンコーディングをShift JISにすると正常に見えます。その後、デホルトに戻しても正常に表示します。質問は、デフォルトで設定したShift JISでは正常に表示しないのに、テキストエンコーディングでShift JISに変更した場合は見えるのはなぜ?、という点と一度正常に見れたホームページはデフォルト設定でもなぜ見えるか、です。よろしくお願いします。

A 回答 (3件)

私もごくまれに同様の経験をすることがあります。

たくさんのページを擁する大手のサイトで、あるページだけが文字化けするケースです。たとえばこのQ&Aサイト(OKWave/教えてgoo/その他)で質問を次々に閲覧していて、あるページだけ突然文字化けするといったケースです。

その経験をもとに原因を考察すると、以下のようになります。単なる考察ですから、これが正しいと断言はできませんので参考程度に読んで下さい。

その特定のページは、ほとんどが Sift_JIS (ハイフンでなくアンダースコアによる表記が正式)で記述されているけれども、どこかに他のエンコーディングの文字などが混入しているかもしれません。

ページのデータを読み込む時に、このわずかな(おそらくはほんの数文字程度)のエンコーディングの乱れが、ブラウザの表示を誤作動させているのではないかというのが私の想像です。まあ、常識的に考えれば、一部分に他のエンコーディング文字がある場合には、その文字だけが化けるのが普通でしょう。

けれども、HTMLソースにエンコーディングに関する宣言が無くて、ブラウザにエンコーディングを自動判別する何らかの機能があったら、このような事が起こり得るかも...などと勝手な想像をしています。ブラウザにそのような機能があるかどうかは知りませんけれども。

ちなみに、ブラウザではありませんが、メーラーの場合には以下の参考URLのような事があるそうです。
参考URL Apple Mailにおけるテキストエンコーディングの優先順位
http://d.hatena.ne.jp/NAOI/20061023/1165220999

そう考えれば、エンコーディングを強制的に Sift_JIS にすることで、画面の大部分が正常に表示されることも説明がつきます。

一度正常に見れたホームページはデフォルト設定でも正常に見れるとの事ですが、No.1さんご指摘のように、ブラウザのキャッシュが働いている可能性がありますね。これを検証するには、キャッシュのクリアを実行してみるのが一つの手でしょう。キャッシュをクリアしたら症状が再現するなどすれば、切り分けができそうです。

以上、単なる考察ですから、より詳しい方のご意見を待ちたいところです。
    • good
    • 0

Safariで文字化けするようなら,FireFox等他のブラウザを使ってみてはどうでしょうか?

    • good
    • 0

そのホームページのソースを見てみないと確かなことは言えませんが、おそらくエンコード宣言がきちんとされていないのではないでしょうか。

ブラウザによってはそれでもちゃんと表示されることがあるので、気がつかないのでしょう。Safariは自動ではそのことを判別できず、手動で強制的に認識させないとわからないのではないでしょうか。一度認識させた後は、キャッシュが記憶しているので、きちんと表示されるのでしょう。
    • good
    • 0
この回答へのお礼

ご意見ありがとうございました。ソースを見てみましたら、確かに"Shift-JIS"の宣言がありませんでした。デフォルトの"Shift JIS"とエンコーディングで直接選択する"Shift-JIS"での違いがまだ謎です。ありがとうございました。

お礼日時:2010/02/27 10:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!