<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>utf8 / Drkcore</title><link>http://blog.kzfmix.com/utf8</link><description>Programming, Music, Snowboarding</description><language>ja</language><lastBuildDate>Tue, 19 Sep 2006 22:49:41 +0919</lastBuildDate><item><title>perl5.8で日本語を扱うこと</title><link>http://blog.kzfmix.com/entry/1158673781</link><description>&lt;p&gt;&lt;a href="http://blog.kzfmix.com/entry/1167365365"&gt;昨日の続き&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;フォームが文字化け&lt;/li&gt;
&lt;li&gt;正規表現の部分がよくわからなかった。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;丸ごとperlで紹介されていた&lt;a href="http://mfpm.blogdb.jp/app/view/Devel::Peek/"&gt;Devel::Peek&lt;/a&gt;を使ってみた。MFPMによるとやっぱ、&lt;strong&gt;UTF-8フラグ探知モジュール&lt;/strong&gt;的な使い方が多いのか。こういうのはプリントデバッグ的で好き。#の行が無駄に増えるけど。&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4844322893/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/51FB39GH11L._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;まるごとPerl! Vol.1&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    小飼 弾&lt;br /&gt;
    インプレスコミュニケーションズ / ?円 ( 2006-08-24 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;で後者の正規表現のマッチがよくわからんという部分は、mecabのパース$m-&amp;gt;parseToNode($word)でutf8フラグがたたないことが原因だった。わかってみればそりゃそうだと思えるが。&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$n&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$m&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;parseToNode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$word&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$n&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$n&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="k"&gt;next&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$devword&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;decode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;utf8&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nv"&gt;$n&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;feature&lt;/span&gt;&lt;span class="p"&gt;});&lt;/span&gt;
    &lt;span class="c1"&gt;#   if ($devword =~ /^\345\220\215\350\251\236/) { # 名詞&lt;/span&gt;
    &lt;span class="c1"&gt;#    if ($devword =~ /^\x{540d}\x{8a5e}/) { # 名詞&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$devword&lt;/span&gt; &lt;span class="o"&gt;=~&lt;/span&gt;&lt;span class="sr"&gt; /^名詞/&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="c1"&gt;# 名詞&lt;/span&gt;

        &lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$w&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$n&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;surface&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;
        &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="nv"&gt;$w&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;\n&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;use utf8しとけばx{540d}x{8a5e}でも名詞でもマッチした。なんとなく体で理解したっぽい。以下参考にしたページ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.namazu.org/~tsuchiya/perl/perl-5.8.html"&gt;http://www.namazu.org/~tsuchiya/perl/perl-5.8.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.pure.ne.jp/~learner/program/Perl_unicode.html"&gt;http://www.pure.ne.jp/~learner/program/Perl_unicode.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://jp.rubyist.net/PerlMa/wiki.cgi?page=20060401-BundledLibraries"&gt;http://jp.rubyist.net/PerlMa/wiki.cgi?page=20060401-BundledLibraries&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;で、前者のフォームが文字化けの部分はさっぱりわからん。どうも、HTML::Template通るときに文字化けしてるっぽい。うーん。&lt;/p&gt;</description><pubDate>Tue, 19 Sep 2006 22:49:41 +0919</pubDate><category>perl</category><category>utf8</category></item></channel></rss>