作者: 閑舎
日時: 2002/8/25(21:47)
まとレスで失礼します。

dune <FZH01112@...> さん wrote.

> いつも思うのですが、Ruby が使える人は Ruby 最強ってかんじなの
> にどうして perl も使っちゃうんでしょ?

今まで作ってきたスクリプトが Perl だったり、世界中に存在しているスクリプ
トが Perl だから、それを元に、と考えると Perl なんじゃないですか。

> jcode.pl を使う。
> http://www.din.or.jp/~ohzaki/perl.htm#JP_Z2H

ここは詳しいですね。でもやはり、

  EUC 漢字(JIS X 0208) "[\241-\376][\241-\376]"
  EUC ASCII文字 "[\040-\176]"
  EUC 半角カナ "\216[\241-\337]"

とかってそのまま書かなきゃならないのはちと面倒ですね。まあ、私はやれと言
われればやります……。jcode::tr は楽だし、問題ないかな。jcode::~/ みたい
なのがあるといいのだが……。

> 僕自身は UCS2 に変換して頭から2バイトずつ処理したり、SJIS 
> のままで文字境界に \x00 入れたりしてます。長さ4文字以上の文
> 字列しか操作しない、ということなら漢字と ASCII の間に \x00 
> を入れるだけでもほとんどOK(m// とかで \Q は使いますが)。

UCS2 への変換は、数式的な処理はできないので、文字コードのテーブルを参照
しての変換となり、かなりのオーバーヘッドが発生しますね。さらに、2 バイト
ずつ処理すればいいので少し楽とはいえ、文字コードの構造を知らないと変なこ
とになりそうだし、dune さんはともかく、誰でもできる方法ではないですね。


WATANABE Hirofumi <eban@...> さん wrote.

> Perl 5.8.0を使えば
> 
> use encoding "euc-jp", Filter=>1;
> use utf8;
> 
> でEUCを扱えます。

use utf8; の部分があるということは Jcode.pm とかで一旦 utf-8 にエンコー
ディングし、それから、EUC-JP のフィルタを使うのだとしたら、やはり jperl 
時代より遅くなりますね……。

  s/9/9/g;

がそのまま通ってくれれば、一応使えることは使えるけれど、やはり日本語デー
タ処理には ruby を使いたくなりますね。ruby は一度 Unicode へコンバートし
たりしてないですよね?

--
本田博通(閑舎)
Hiromichi Honda <raku@...>