EUCで書かれたPHPで「Unexpected character in input:~」というエラーが時々出るという問い合わせがあったので調査してみました。
この「時々」というのがポイントで、さらに調べてみたところ、IE6やFirefox等では発生せず、IE7でのみ見受けられる現象でした。
(実際にブラウザから数百回行ってみた検証結果ですので、違うかもしれませんが…)
文字コードによるエラーであろうと、おおかた検討がつきますが、PHPやデータベースの設定を見直しても特に問題が見つかりませんでした。
どうやら原因はIE7の文字コード認識にあるようです。
どういう理由でかは分りませんが、何回かに1回という確率で、文字コードの判別に失敗してしまっています。
解決策は昔流行った
<!– 美乳 –>
です。
これは、SJISでは存在しない「0xFD」「0xFE」の文字コードを含む文字をコメント文として挿入しておき、それをブラウザが自動判別に利用するという方法です。
さすがに「美乳」はまずいという場合には「◎◇」「入口」など、第2バイトが「0xFD」や「0xFE」で構成された文字を組み合わせることで対応できます。
これをHTMLソースの一番初めに挿入する事で、解決できましたのでご報告いたします。
- <!– ◎◇ –>
- <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>
- <HTML LANG=”ja”>
- <HEAD>
- ・
- ・
- ・