EUCで文字化け?
EUC で文字化けしたのを検証してみようと思ったけど - TECHNOLAZY.LOG
http://d.hatena.ne.jp/technolize/20080621/1214048670
気になったのでちょっと調べてみました。
マルチバイト周りは StringUtil にまとめられてて、処理元の文字列のエンコードはdetectEncoding()で決定されるのだけど。
/** * 文字列からエンコード文字列を取得 * * @param string $value * @return string */ function detectEncoding($value){ /*** unit("lang.StringUtilTest"); */ if(is_array($value) || is_object($value)) return null; return (extension_loaded("mbstring")) ? mb_detect_encoding($value) : StringUtil::UTF8(); }
ん〜
$valueが短すぎるとmb_detect_encoding()がエンコードの判別を誤ってしまうから、これはちょっといやだなぁ。
mbstringの有無で判断してるわけですが、強制指定できるようにして欲しいな。
rhaco本体には手を加えないとするなら、
mb_detect_order('eucjp-win');
としておけば、誤判断はなくなるのかも?