Namazu-win32-users-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: 半角カナを含む日本語ファイル名
- From: "Takahiko TAMURA" <takat@xxxxxxxxxxxxxxxx>
- Date: Fri, 19 Jan 2001 17:06:28 +0900
- X-ml-name: namazu-win32-users-ja
- X-mail-count: 00586
田村@島精機製作所 です。
>・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;
}