[kansaipm] Re: [kansaipm] 暗黙のuse utf8

Yasushi Nakajima nakajima at netstock.co.jp
Sun Oct 5 21:18:56 CDT 2003


Dan> ああ、多分これだ!状況によってutf8_heavy.plが読み込まれるかどうかというのは、読み込んだXMLデータ中に、<本当の>、すなわち 
Dan> \x80 よりもordが大きな文字が含まれるかどうかによって決まるわけです。すなわち
Dan> 
Dan> $cpt->reval(qq/print "Hello, World\n"/);   # OK
Dan> $cpt->reval(qq/print "世界にようこそ\n"/); # NG
Dan> 

 私も最初はそう思いました。ところが、\x7fまでの文字だけで構成されたコー
ドでも起こるんです。

Dan> ですから、これはもう素直に上記のような方法で、先に utf8_heavy.pl をあらかじめ require しておいた方がいいでしょう。

 実行時に芋づる式にrequireされるモジュールがたくさんあるようで、
utf8_heavyだけをrequireしておくのではうまくいきません。

 まだ単独で再現できるコードが示せないのですが、XPDFJに与えるとこの現象
が起きるXMLデータはかなり短いところまで追いつめました。

<?xml version="1.0" encoding="x-sjis-cp932"?>
<XPDFJ version="0.1">
<do a="200">
  <eval eval="$Args{a} =~ /\d/"/>
</do>
</XPDFJ>

 <do>は属性をSafe環境内の%Argsにセットして、内容を実行します。<eval>は
eval属性の値をrevalします。

-- 
Yasushi Nakajima <nakajima at netstock.co.jp>




More information about the Kansai-pm mailing list