Maple: TEMPLATE_CODEとOUTPUT_CODE
一気に書けばよかったですね.
grep -rn "OUTPUT_CODE" . ./maple/core/maple.inc.php:39:define('OUTPUT_CODE', 'SJIS'); ./maple/core/Smarty4Maple.class.php:44: if (OUTPUT_CODE != INTERNAL_CODE) { ./maple/core/Smarty4Maple.class.php:146: return mb_convert_encoding($source, OUTPUT_CODE, INTERNAL_CODE); ./maple/core/Smarty4Maple.class.php:153: return mb_convert_encoding($source, OUTPUT_CODE, INTERNAL_CODE); [...]
./maple/core/Smarty4Maple.class.phpを読むと, コンストラクタ内で
- TEMPLATE_CODEとINTERNAL_CODEが一致しない場合, プリフィルタ(pre01)を登録
- OUTPUT_CODEとINTERNAL_CODEが一致しない場合, アウトプットフィルタ(out01)を登録
していることがわかりました.
Maple用のSmartyのラッパークラス内でも文字コードの変換処理を行っていたのですね.
文字化け問題が発生した時に, Mapleの文字コード変換アーキテクチャを知っておいたら, 対処しやすいかなと思い, メモしておきました.