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文字コード変換アーキテクチャを知っておいたら, 対処しやすいかなと思い, メモしておきました.