Jcode::CP932での正規化処理
Jcode::CP932での正規化処理
Encodeのどこかのバージョンから*1、変換に失敗したときに呼び出す関数を指定できるようになった記憶がある。ということは、そこで呼び出す関数を用意して、
$FALLBACK = \&FB_NORMALIZE_CP932; sub FB_NORMALIZE_CP932 { ... }
――とかしておけばいいはず*2。
EncodeのFallBack関数の書き方はあとで調べよう……。
あとは
sub normalize_cp932 { my $str_ref = ref $_[0]? $_[0]: \$_[0]; $$str_ref =~ tr/$utf8_jis/$utf8_cp932/; return $$str_ref; }
――みたいな正規化関数を作るといいのかな。