Namazu-win32-users-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: 半角カナを含む日本語ファイル名



田村@島精機製作所 です。

>・JIS X 0201片仮名&JIS X 0212補助漢字対応パッチ
>  http://www.namazu.org/~takesako/pub/kana-patch.tar.gz
>
>他のみなさんの御意見もお伺いしたいところです。
>ちなみに、こちらではうまく動いているようです。

  ということで、こちらでも codeconv.pl にパッチを当ててみました。
  (mknmz は -U オプションを付けています)
  結果は、検索結果のタイトル名が半角から全角に変換され、
  そのリンク先(URL)がなにやら変換されているようですが、半角カナを
  含むと文字化けしてしまいました。

  ところで、mknmz.in とはどこにあるのでしょうか?
  少なくともうちの namazu には見当たりませんし、scripts という
  ディレクトリもありません。

  正しくパッチを当てたつもりなんですが....
  どなたか、ご教示をお願いします。

パッチを当てると、こういうソースになりました。

# convert Shift_JIS to EUC-JP
sub stoe ($) {
    my ($c1, $c2, $code);

	($c1, $c2) = unpack('CC', $code = shift);

	if (0xa1 <= $c1 && $c1 <= 0xdf) {
		$c2 = $c1;
		$c1 = 0x8e;
	} elsif (0x9f <= $c2) {
		$c1 = $c1 * 2 - ($c1 >= 0xe0 ? 0xe0 : 0x60);
		$c2 += 2;
	} else {
		$c1 = $c1 * 2 - ($c1 >= 0xe0 ? 0xe1 : 0x61);
		$c2 += 0x60 + ($c2 < 0x7f);
	}
	pack('CC', $c1, $c2);
}

sub shiftjis_to_eucjp ($){
    my ($str) = @_;

    if (util::islang("ja")) {
		$str =~
s/([\201-\237\340-\374][\100-\176\200-\374]|[\241-\337])/&stoe($1)/geo;
    }
	$str;
}