Drkcore

19092006 perl utf8

perl5.8で日本語を扱うこと

昨日の続き

  • フォームが文字化け
  • 正規表現の部分がよくわからなかった。

丸ごとperlで紹介されていたDevel::Peekを使ってみた。MFPMによるとやっぱ、UTF-8フラグ探知モジュール的な使い方が多いのか。こういうのはプリントデバッグ的で好き。#の行が無駄に増えるけど。

ProductName まるごとPerl! Vol.1
小飼 弾
インプレスコミュニケーションズ / ?円 ( 2006-08-24 )


で後者の正規表現のマッチがよくわからんという部分は、mecabのパース$m->parseToNode($word)でutf8フラグがたたないことが原因だった。わかってみればそりゃそうだと思えるが。

my $n = $m->parseToNode($word);

while ($n = $n->{next}) {
    my $devword = decode("utf8",$n->{feature});
    #   if ($devword =~ /^\345\220\215\350\251\236/) { # 名詞
    #    if ($devword =~ /^\x{540d}\x{8a5e}/) { # 名詞
    if ($devword =~ /^名詞/) { # 名詞

        my $w = $n->{surface};
        print $w,"\n";
    }
}

use utf8しとけばx{540d}x{8a5e}でも名詞でもマッチした。なんとなく体で理解したっぽい。以下参考にしたページ。

  • http://www.namazu.org/~tsuchiya/perl/perl-5.8.html
  • http://www.pure.ne.jp/~learner/program/Perl_unicode.html
  • http://jp.rubyist.net/PerlMa/wiki.cgi?page=20060401-BundledLibraries

で、前者のフォームが文字化けの部分はさっぱりわからん。どうも、HTML::Template通るときに文字化けしてるっぽい。うーん。

About

  • もう5年目(wishlistありマス♡)
  • 最近はPythonとDeepLearning
  • 日本酒自粛中
  • ドラムンベースからミニマルまで
  • ポケモンGOゆるめ

Tag

Python Deep Learning javascript chemoinformatics Emacs sake and more...

Ad

© kzfm 2003-2021