[PHP-users 24420] Re: windowsからのchasen利用

P-FLOW p-flow @ d6f.com
2005年 2月 6日 (日) 17:33:09 JST


早速のご回答ありがとうございます。

なんとか利用する方法をと、いろいろ調べていた中にサーバモードというのも
あったのですが、
現在のChasenのバージョン2.3.3においてはクライアント・サーバモードが廃止
されており、
スクリプトで外部関数を利用した実装を試みている次第です。

ご指摘いただいた文字コードですが
現在内部エンコード、出力ともにEUC-JPの環境にしています。
chasenのwindowsバイナリはデフォルトでSJISであるとの事でスクリプト側で以
下のように解析対象文字列を
SJISに変換した後chasenに渡しても結果はダメでした。
$str = mb_convert_encoding($str,"SJIS","EUC-JP");

また、chasen側でもエンコード指定ができるとの事で以下のようにEUC-JP指定し
ても結果は同じでした。
$handle = popen ("echo '$str' | $chasen -i e", 'r');

たとえ文字コードが違っていても何らかの出力がfgets($handle)で得られそうな
ものですが空です。
ちなみに echo "'$handle'; " . gettype($handle) の結果は
'Resource id #2'; resource
となります。

>>/ chasenをwindows版phpで利用するための情報が少なく困っています。
>/>/ みなさまお知恵を貸していただけますでしょうか。
>/chasenをサーバモードで実行して、TCP/IPベースで繋ぐのが比較的情
>報が多くてやりやすい方法だと思います。
>プロトコルについても、たしかchasenのマニュアルに入っていたよう
>な…
>(クライアントの実装言語を変えても、プロトコルがわかっていれば
>使い回しが利くので(^-^;)
>
>PHPのpopenでchasenを呼び出そうとすると、コマンド文字列のパスの
>指定やら文字コードやら、Windowsの制限とかで余計な問題を抱え込み
>そうですし…(^^;
>



PHP-users メーリングリストの案内