- ベストアンサー
Perlでテキスト処理をしたいのですが・・・
はじめて質問します。 私は印刷会社に勤務しているのですが、職務上テキスト処理を行う事が多いので、テキストに強いソフトはないか調べていた所、Perlを見つけ、今勉強中のところです。 初めはActivePerlの5.8.3を使っていたのですが、まだシフトJISに問題があるようで、文字化けをして使い物にならないので、Jperlに最近変えました。 一様Jperlは、文字化けをしないか、総ての文字を調べました。結果は、Perlのような文字化けは無かったですが、まだ、実際に仕事に使えるものなのか、不安です。 ========================== (質問) (1)Perlにはいろいろ種類があるようなのですが、どれが一番日本語のテキスト処理に向いているのでしょうか?Jperl以外にありましたら、教えてください。 (2)Jperlの今のバージョンより最新バージョンはありますか?教えて下さい。 (3)JperlにもActivePerlのように、文字がおかしくなるようなバグがあるのでしょうか? ========================== 環境はWindous2000 Jperl(5.005_03) 文字はSjis ご解答お願いしますm(..)m
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>>初めはActivePerlの5.8.3を使っていたのですが、 >>まだシフトJISに問題があるようで、 >>文字化けをして使い物にならないので、Jperlに最近変えました。 基本的に、機種依存の文字コードを処理する事は別問題なのでPerlのバグということではありません。 >>(3)JperlにもActivePerlのように、 >>文字がおかしくなるようなバグがあるのでしょうか? バグではないですが、一部正しく処理できない事はあります。 Jperlは、楽に文字コード処理をしたいと 言うことで出来たPerlですので漢字処理は比較的 うまくやってくれます<ActivePerlは別のJcode.plが必要となったりしますので・・・逆に言うと 追加モジュールを組めば同じ事です
その他の回答 (2)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
(1)5.8以上のバージョンでは、日本語を扱えるようになりました。 質問文の内容での文字化けは、他の回答者も答えられているようなshift_jisに起因するものだと思います。 プログラムの最初に use encoding 'shiftjis'; とすることで、入力ファイルがシフトJISであることを認識し、内部的にunicodeで処理するようになるので、大丈夫です。 (2)(1)でも述べたように5.8以上で標準的に日本語(ユニコードによるので日本語とは限らない)が扱えるようになったので、今後バージョンアップはされなくなると思います。
お礼
返答ありがとうございます! さっそく試したいと思います。
Perl の文字化け現象は、一部の文字がエスケープシーケンス(¥)を使用してしまっており、それを Perl がシステムコードと誤解することで発生します。 よって(3)に関しては「ノー」といえます。 ただし、一般に JPerl と呼ばれているのは日本語に対応した Perl プログラムの総称で、特定のソフトウェアを指す言葉ではありません(違うソフトがそれぞれ個別に JPerl を名乗りあってるからです)。 よって、(2)に関しては明確な返答ができません。 Perl が文章解析に強いと言われているのは、 ・初心者の登竜門である文字解析技術の訓練に気軽に使える ・正規表現が気軽に使える という2点が大きいところです。 よって、言語としてのレベルが高くてよく、なおかつ正規表現をさほど使わないのであれば、C言語とかでもご希望の処理は可能です。
お礼
返答ありがとうございます! 正規表現は結構使うので、やっぱりPerlですかね・・。でも、どうにかPerlとうまくやっていけそうな気がしてきました!文字化けも大丈夫そうなので。 ありがとうございました。
補足
Aruku-20030515さん ありがとうございます。 Perlの文字化けはバグではなかったんですね、わかりました(^_^) >>Jperlも一部正しく処理できない とありますが、具体的にはどういった事ですか?