最近トラックバックスパムがやたらと文字化けを起こすなぁ...って思ってたんです。まぁ、相手のサーバの文字コードなんかお構い無しに放り投げてくるのがスパム!な訳ですから、化けてあたりまえ... いや待てよ、blosxomのwritebackプラグインでJcode::convert変換してたはず。しかもutf8でだ。
で、ようやく重い腰をあげる。
調べてる内に、ここのサーバではJcode.pmがutf8で全滅している事に気づいた。
このサーバではXSは置けないのでJcode::Unicode::NoXSが動いているものとばかり思っていたのだが、いやいや...
うんちゃらかんちゃら、弄ってる内にメンドクサクなってきたので、ついいつもの適当ハック癖...。
Jcode/Unicode/NoXS.pm内のメソッドをJcode::XXXからJcode::_Classic::XXXに一括
--- Jcode/Unicode/NoXS.pm.orig 2007-06-26 00:31:47.000000000 +0900
+++ Jcode/Unicode/NoXS.pm 2007-06-26 03:23:49.000000000 +0900
@@ -53,7 +53,7 @@
# instead of being 'use'd (No package export done) subs below
# belong to Jcode, not Jcode::Unicode
-sub Jcode::ucs2_euc{
+sub Jcode::_Classic::ucs2_euc{
my $thingy = shift;
my $r_str = ref $thingy ? $thingy : \$thingy;
_init_u2e();
@@ -68,7 +68,7 @@
$$r_str;
}
-sub Jcode::euc_ucs2{
+sub Jcode::_Classic::euc_ucs2{
my $thingy = shift;
my $r_str = ref $thingy ? $thingy : \$thingy;
_init_e2u();
@@ -84,21 +84,21 @@
$$r_str;
}
-sub Jcode::euc_utf8{
+sub Jcode::_Classic::euc_utf8{
my $thingy = shift;
my $r_str = ref $thingy ? $thingy : \$thingy;
- &Jcode::euc_ucs2($r_str);
- &Jcode::ucs2_utf8($r_str);
+ &Jcode::_Classic::euc_ucs2($r_str);
+ &Jcode::_Classic::ucs2_utf8($r_str);
}
-sub Jcode::utf8_euc{
+sub Jcode::_Classic::utf8_euc{
my $thingy = shift;
my $r_str = ref $thingy ? $thingy : \$thingy;
- &Jcode::utf8_ucs2($r_str);
- &Jcode::ucs2_euc($r_str);
+ &Jcode::_Classic::utf8_ucs2($r_str);
+ &Jcode::_Classic::ucs2_euc($r_str);
}
-sub Jcode::ucs2_utf8{
+sub Jcode::_Classic::ucs2_utf8{
my $thingy = shift;
my $r_str = ref $thingy ? $thingy : \$thingy;
my $result;
@@ -121,7 +121,7 @@
$$r_str = $result;
}
-sub Jcode::utf8_ucs2{
+sub Jcode::_Classic::utf8_ucs2{
my $thingy = shift;
my $r_str = ref $thingy ? $thingy : \$thingy;
my $result;
とりあえず、動いてそげ。