文字コードについて

PHPの内部文字コードEUC-JP
最終的なhtmlの文字コード:Shift-JIS
とした場合、各種設定は下記のようになるようです。

PHP側の文字コード指定

php.iniファイルで下記のように定義

mbstring.internal_encoding = EUC-JP
mbstring.http_output = SJIS

つまり、PHPの内部処理には『EUC-JP』を使用し、最終的なhtmlへのアウトプット時には『Shift-JIS』に変換して出力するように設定しました。

CakePHPフレームワークでの文字コード指定

app/views/layouts/default.thtmlで下記のように定義(default.htmlはcake/libs/view/templates/layouts/default.thtmlをコピー)

<?php echo $html->charset('shift_jis'); ?>

php.iniでの設定通り、htmlへのアウトプットの文字コードを『Shift-JIS』に変換するように設定しました。

.thtmlをどの文字コードで保存するか

上記の設定より、私は当然『Shift-JIS』にて.thtmlファイルを作成するものと思っていました。
しかしながら、『Shift-JIS』にて.thtmlファイルを作成すると、文字化けが発生してしまいました。
原因は、どうやら実際はthtmlはphpにて処理(つまりこの場合、EUC-JPで処理)され、htmに変換されるようです。
つまり、thtmlファイルは上記設定では『EUC-JP』でファイルを作成する必要があるようです。
(php.iniでmbstring.internal_encoding = UTF-8とした場合は、thtmlファイルはUTF-8で作成することになると思います。)

もっと汎用的な言い方では、thtmlファイルはPHPの内部エンコーディング設定と同じ文字コードで作成する必要がある、ということになるでしょうか。