UTF-8とUTF-8N
これでActionやテンプレートをUTF-8で書いても文字化けしなくなったのだが、代わりにWindowsXP+IE6の環境ではページの上のほうに1行分の変な余白が見えるようになってしまった。Firebugで確認しようとすると、うまく選択できないブロック要素があったりしてなんかおかしい。タグの対応関係はちゃんと取れてるのに。
メモ帳やFirefoxのソース表示では分からないが、表示されたページをいったんローカルに保存してxyzzyなんかで見てみると
のあたりにゴミデータが混ざっていた。これが原因らしい。なんでこんなデータが混ざるようになったのか調べてみると、前述のUTF-8への変換の際に「UTF-8N」にしなかったのが原因だった。これによってファイルの先頭24bitにバイトオーダーマーク(BON)が付加されて、それがインクルードによってファイル途中に現れるゴミデータになってしまったと。
UTF-8とUTF-8Nの違いはここが分かりやすかった。UTF-8にBONを付加する意味ってあんまりないような…。http://www.ffortune.net/comp/develop/data/utf.htm