文字コードとの戦いは終わらない

[simple-way:~] CTO% cat 2008年03月20日16:26.txt

またまた、文字コードと戦いました。

Apacheでデフォルトの文字コードを指定しておくと、content-typeにcharsetが指定されていない場合デフォルトの文字コードをcharsetとして付加するようです。ざっと調べるとセキュリティの事情らしいです。

しかし、これが余計な事をしてくれて、Shift-JISがデフォルトの文字コードとして指定されている場合、PHPから明示的に文字コードを出力しないとHTTPヘッダにShift-JISを付加しちゃってくれます。HTTPヘッダにcharsetが付加されるとHTML内でcharsetを指定してもHTTPヘッダの文字コードが優先されちゃうんですよね。

最初文字化けしている原因がわからなくて、文字コードの解決にかなり時間をかけてしました。

どこのサーバーでも設置したらすぐ動くように、できる限り汎用性を意識して作っているのですが、気がつかない点もあるんですよね。

とりあえず、今回の教訓としては、PHPで文字コードを明示するようにする、ということですね。


[simple-way:~] CTO% []

Blog Top

プロフィール
CTO
CTO

  • 1985年7月
    山梨県生まれ

  • 2002年12月
    日本学生科学賞 ソリューション部門 入選1等
    (巨大壁画設計アプリケーションの開発)

  • 2004年4月
    AC入試にて筑波大学第三学群情報学類へ入学

  • 2007年4月
    株式会社シンプルウェイ
    取締役 兼 CTO(最高技術責任者)に就任

  • 2008年3月
    筑波大学第三学群情報学類を無事卒業!!


QRコード
QRCODE