March 08, 2005
Jcode 2 の一部が下位互換してないっぽげ
Dan Kogai さん作の Jcode の次期リリースである Jcode 2 が beta で出てますが、禿しく放置してたものの、これが本流になった時のことを考えて、ちょっとだけ使ってみる。
基本的には、単純に Jcode の使い方と同じで Encode を扱う wrapper になっているようですから、今まで Jcode で書いていたのもそのまま動かせて、でも内部的には Encode が使われているという感じ。
コード変換系は一通りチェックしてみたところ問題なく普通に動いた。
が、どうも
内部を解析してみようと思ったものの、ちょっと魔窟のように映った。
てか、そもそも Encode だの utf8 プラグマだのを忌み嫌い、最低限だけ使って殆んど避けて通ってきたので、サパーリわからぬおまじないばかりなり。。。
でもこれが合っているのかどうかすらわからない。。。
まぁ、素人は Jcode やら Encode 使うなってこった。
jcode.pl でも使ってろと。
で、この間に引き続き、patch を作者に送らない不良プログラマですが何か?
しかも、
自省の念も込め、今回は、Trackback ぐらいは送っておきまふ。
基本的には、単純に Jcode の使い方と同じで Encode を扱う wrapper になっているようですから、今まで Jcode で書いていたのもそのまま動かせて、でも内部的には Encode が使われているという感じ。
コード変換系は一通りチェックしてみたところ問題なく普通に動いた。
が、どうも
jfold() を実行すると、内部的に扱われている UCS2 のまんま返ってくるようで、当然 UTF8 フラグ立ちまくりのビンビン。内部を解析してみようと思ったものの、ちょっと魔窟のように映った。
てか、そもそも Encode だの utf8 プラグマだのを忌み嫌い、最低限だけ使って殆んど避けて通ってきたので、サパーリわからぬおまじないばかりなり。。。
--- Jcode.pm.orig Sat Feb 19 15:53:15 2005
+++ Jcode.pm Tue Mar 8 22:30:32 2005
@@ -361,6 +361,10 @@
$$r_str = join($nl, @lines);
$self->{r_str} = $r_str;
+ my $e = find_encoding($self->{icode});
+ @lines = map {
+ Encode::is_utf8($_) ? $e->encode($_, $self->{fallback}) : $_
+ } @lines;
return wantarray ? @lines : $self;
}
こんなんしてみたらとりあえず希望通りの動きになったっぽげ。でもこれが合っているのかどうかすらわからない。。。
まぁ、素人は Jcode やら Encode 使うなってこった。
jcode.pl でも使ってろと。
で、この間に引き続き、patch を作者に送らない不良プログラマですが何か?
しかも、
<pre> タグで囲った patch なんか公開する良心の欠片もない不良プログラマですが何か?自省の念も込め、今回は、Trackback ぐらいは送っておきまふ。