Namazu-devel-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: UTF-8 index



佐久間です.



> > JISとの相互変換はUnicode::Mapでも出来ます.Perlのネイティブな機能を使って
> > い
> > るところを,5.6でも使えるように対応して欲しいだけで,日本語コードの判定な
> > ど
> > はnkf任せで構わないと思います.
> 
> 何でしたら 5.6 対応を佐久間さんがやってくれれば助かりますけど。

どこが5.6に不適なのか分からないのですが,Text::Kakasiのキャラクターセットの
変換が,5.8のfrom_toを使っていたので,これを5.6ではUnicode::MapとUnicode::
Stringでも使えるようにパッチを書いてみました.



--- Kakasi.pm.old	Sat Feb 28 06:52:18 2004
+++ Kakasi.pm	Sat Feb 28 06:51:02 2004
@@ -27,6 +27,12 @@
 	    Encode->import(qw/find_encoding from_to _utf8_on _utf8_off/)
 	};
 	return $@ ? 0 : 1;
+    }elsif($] >= 5.006){
+	eval {
+	    use Unicode::Map;
+	    use Unicode::String(qw/ucs2/);
+	};
+	return $@ ? 0 : 1;
     }else{
 	return 0;
     }
@@ -118,6 +124,22 @@
 }
 
 sub close_kanwadict { xs_close_kanwadict() };
+
+my %map = (
+     oldjis => "JIS-X-0208",
+     newjis => "JIS-X-0208",
+     dec    => "EUC-JP",
+     euc    => "EUC-JP",
+     sjis   => "Shift-JIS",
+    );
+
+from_to {
+    if($] >= 5.008){
+	Encode::from_to($@);
+    } else {
+	$_[0] = Unicode::Map->new($map{$_[2]})->from_unicode(ucs2(Unicode::
Map->new($map{$_[1]})->to_unicode($_[0])));
+    }
+}
 
 1;
 __END__