文字化け

Mapleを試していただいた方の日記や某掲示板の投稿にも書かれていたがMapleのサンプルが文字化けをするパターンがあるんだなと思っていたが、パターンがわかった。

「mbstring.encoding_translation = On」でmbstringにエンコード変換を任せてる方は文字化けするようだ。(私の環境が「mbstring.encoding_translation = Off」なので、気が付いてませんでした)

Mapleのクラス群は「webapp/config/maple.inc.php」の以下の部分でエンコーディングを指定するとそれに合わせて自力で変換をしている。これが自動変換と喧嘩する。

define('INPUT_CODE',    'SJIS');
define('CONFIG_CODE',   'SJIS');
define('TEMPLATE_CODE', 'SJIS');
define('INTERNAL_CODE', 'EUC-JP');
define('OUTPUT_CODE',   'SJIS');

ということで、「mbstring.encoding_translation」の値をみて、自動変換をしようとしている場合はRequestクラス内の変換をOffにするという修正をしようと思います。

ちなみにサンプルはわざと極端な例をつくってます。スクリプト以外は全部ShiftJISで開発しないといけない場合にでも対応できるようにしようということで。

#某掲示板で指摘があったので、みてみたところ「htdocs/example5.php」だけなぜかShiftJISだった・・・次回のリリースではEUCにします。スクリプトEUCで書くのが安全だと思います。