[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% []