ISO-8859-1は、Latin-1ですので、HTTPヘッダをそのまま正しいと判断して処理すると、日本語は正しく表示されないのだと思います。
例えば、PC上でIEで該当ページ(シフトJIS)を表示して、エンコードをISO-8859-1に切り替えてみると文字化けするのが分かると思います(右クリックしてエンコードから西ヨーロッパ言語(ISO)を選択)。携帯で文字化けしているのと同じ化け方ではありませんか?
携帯がどこか書いていないので具体的なことは分かりませんが、正常に読める携帯というのは、HTTPヘッダを鵜呑みにしないで文字コードを判別していると思われます。文字化けしているものはHTTPヘッダをそのまま使っているのでしょう。
文字コードの解釈は携帯のキャリアではなく、携帯に搭載されているブラウザに依存する仕様ですので、キャリアが同じでも別メーカ製の携帯であればブラウザが異なっている可能性があるので表示が異なる可能性はあります。
ありがとうございます。
機種は事情により出せないのですが
パナソニック製とシャープ製の携帯です。
メーカーによってヘッダーの解釈に違いがあるとするなら
文字化けもうなずける話ですね。
携帯によってヘッダーで判断するか文字コードで
判断するかがわかれば原因がわかりやすいのですが
さすがにメーカーもそこまで公開はしてないのでしょうね。
唯一気になるのはHTTPヘッダーの
charsetがISO-8859-1という点です。
それだとそのページが ISO-8859-1 で書かれていますよ、と言う宣言になります。
ISO-8859-1 に日本語は含まれていないので、HTTPヘッダーを正確に解釈する機種ほど表示できないと言う事になります。
実際に文字コード ISO-8859-1 で書かれていない限りサーバーの設定を変えるしかありません。
片方は文字コードで判断、片方はヘッダーで判断。
ヘッダーISO-8859-1と判断したけど
実際にはSJISのデータが来たから文字化けしたと
考えると納得いきます。
メーカーがどっちで判断しているかが不明なので
原因を特定はできませんが
参考にさせていただきます。