[Namazu-win32-users-ja 1275] Re: インデックスファイルの文字コード

Yukio USUDA m6694ha392t @ asahi-net.or.jp
2010年 10月 17日 (日) 09:39:23 JST


臼田です

On 2010/10/12, at 21:04, Toru Ishizuka wrote:

> 
>  win版perlの制約から逃れるため、linux(CentOS5.3)上で
> windowsの共有ディレクトリをマウントした状態でインデック
> スを作成してみましたが、260byte以上のパスも下位バイトに
> 0x5cを持つ文字を含むパスでも正常に扱えることを確認できま
> した。

正常動作しているのであれば linux 側でインデックスを作るのが
妥当だと思います。

以下は実験的な話です。

>  同じようにcygwin(1.7.7)上でnamazuを実行したのですが、
> インデックスは作られるものの、文字コードが他の環境と違う
> ためか、キーワードによる検索ができません。キーワード以外
> の+filename:や+uri:による検索はできています。
> 
>  ・NMZ.field.XXXXファイルの文字コード
>   cygwin UTF8
>   CentOS EUC
>   Win    EUC
> 
>  ・NMZ.wの文字コード
>   cygwin UTF8
>   CentOS EUC
>   Win    EUC
> 
>  windows環境でもEUCでファイルができているので、namazuの
> 実行環境によらずEUCでファイルが作成されるものだと思って
> いるのですが、確認すべき設定等はありますでしょうか。


以下の方法は Ubuntu Server の ja_JP.UTF-8 ターミナルで試したもので
cygwin では確認していないのでどのようになるのかは不明ですが
設定に気をつければ同じような結果になるものと思います。


ターミナル設定をja_JP.UTF-8 のままで使うのであれば
設定状況チェックは以下のようにお願いします。

$ mknmz -C |iconv -fEUC-JP -tUTF-8

実行する際は以下のように --indexing-lang=ja オプションをつけましょう。

$ mknmz --indexing-lang=ja /targetdir/

NKF や kakasi がきちんと設定されていれば
NMZ.w の文字コードは EUC になるものと思われます。

ファイル名が UTF8 の環境のままでもよいように mknmz を改造してみたことが
あります。

この修正で NMZ.field.XXXX 内のファイル名も EUC になるはずです。


$ diff -u /usr/bin/mknmz.bak20100826 /usr/bin/mknmz

--- /usr/bin/mknmz.bak20100826  2010-08-26 12:58:02.707964451 +0900

+++ /usr/bin/mknmz      2010-08-26 16:14:13.571965260 +0900

@@ -567,6 +567,11 @@

            $tmp =~ s/([^a-zA-Z0-9~\-\_\.\/\:\%])/

                sprintf("%%%02X",ord($1))/ge;

        }

+    }else{

+       for my $tmp ($file, $fragment) {

+           next unless defined $tmp;

+           codeconv::toeuc(\$tmp);

+       }

     }

 
 
@@ -610,6 +615,8 @@

     unless (defined($fields->{'title'})) {

        $fields->{'title'} = gfilter::filename_to_title($cfile, $wsref);

     }

+    codeconv::toeuc(\$fields->{'title'});

+

     unless (defined($fields->{'date'})) {

        my $mtime = $fields->{'mtime'};

        my $date = util::rfc822time($mtime);



臼田幸生

-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://www.namazu.org/pipermail/namazu-win32-users-ja/attachments/20101017/1bc738e6/attachment-0001.htm>


Namazu-win32-users-ja メーリングリストの案内