- フォームが文字化け
- 正規表現の部分がよくわからなかった。
丸ごとperlで紹介されていたDevel::Peekを使ってみた。MFPMによるとやっぱ、UTF-8フラグ探知モジュール的な使い方が多いのか。こういうのはプリントデバッグ的で好き。#の行が無駄に増えるけど。
で後者の正規表現のマッチがよくわからんという部分は、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通るときに文字化けしてるっぽい。うーん。