- 締切済み
UTF8環境下で外部CSSの挙動がおかしい
外部CSSの挙動で非常に困っています。 このたびサーバーを移設することになり、新しく借りたサーバーに既存のソースを移動して動作確認を行っていたところ外部CSSの挙動がおかしく、原因もわからなく困っています。 どなたかご教授いただけますでしょうか。 詳しい環境は下記のとおりです。 --引っ越し前------------------- ホスト文字コード:EUC-JP ローカル文字コード:EUC-JP FTP時には無変換でアップロード --引っ越し後------------------- ホスト文字コード:UTF-8 ローカル文字コード:EUC-JP アップロード時にEUC-JP⇒UTF8変換でアップロード どちらもPHPファイルから**.cssというファイルを外部参照してスタイルを読み込んでいます。現象としては、CSSファイルのすべてが読み込めないのではなく部分的に読み込めない状況です。 しかも再読み込みするとスタイルが効いたり効かなかったりと挙動もまちまちで、おかしい部分が特定できません。 CSSファイルの先頭に「@charset "UTF-8";」をつけてみたり、「@charset "EUC-JP";」をつけてEUCでアップロードしたりしてみましたが何も変わりませんでした。 CSSの最初に出現するのはbody{}ですので、先頭がクラスによっておこされる現象でもないようです。 前サーバーの使用期限が迫っており、このままでは現状での引っ越しとなってしまい大変困っています。 どなたか回答よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- hogehoge78
- ベストアンサー率80% (433/539)
一度、CSSファイルのコメントを全て削除したものをアップロードしてみてはいかがでしょうか。(/* */の部分) つまるところ、文字コードの指定が必要な場合というのはマルチバイト文字(全角文字)が入っている場合なので、ASCII文字のみで構成されていれば、文字コードを指定する必要が無いのではないかと思います。 また、CSSやJSファイルは一度ロードされるとキャッシュから読み出されますので、 例えば、common.cssがある場合は common.css?20090626 など、更新時にクエリ文字列を付加してやるとCSSを読み直しますので、それで一度試してみてはいかがでしょうか。
- yyr446
- ベストアンサー率65% (870/1330)
echo mb_internal_encoding(); とやってみて、ヌルなら mb_internal_encoding("UTF-8"); mb_language("Japanese"); を入れてみる。
補足
PHP先頭でechoしてみたところ「ISO8859-1」(半角で入れると文字化けるので全角で表示してます)と表示されました。なのでその部分でinternal_encodingを実行させて、その後のechoで「UTF-8」と出るように内部エンコードを変更させてみましたが挙動自体は一切変わっていませんでした。 内部エンコードは試してなかったので期待していましたがダメなようです。 回答ありがとうございました。