Namazu-win32-users-ja(旧)


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

RE: encoding for filename



竹迫です。

Yoshinori.TAKESAKO <takesako@xxxxxxxxx> said:
>mknmz -U とする方法も試してみましたが、Namazu 2.0.4 for Win32 では
>以下の問題点があったため、以下の解決策を考えていました。
>
>▼ mknmz -U の問題点
>1. パス名やファイル名に半角カナを使用していると全角カナに変換される

namazu 2.0.4 for Win32 がこのような動作をするようになっているのは、
歴史的な理由があるのだと思いますが、一番の問題は namazu で
使用している ./nmz/codeconv.c 中にある漢字コード変換の関数が
JIS X 0201片仮名(俗に言う半角カナ)の存在を考慮していないためだと
思われます。

(1) codeconv.c.patch
とりあえず、euctosjis()にて JIS X 0201片仮名 と JIS X 0212補助漢字を
EUC-JP から Shift_JIS に変換するようなパッチを作ってみました。

(2) codeconv.pl.patch
また、./pl/codeconv.pl の shiftjis_to_eucjp() で、Shift_JISの半角カナを
EUC-JPの全角カナに変換していた部分をEUC-JPの半角カナに変換
するようにしました。

このパッチを当てることによって、mknmz -U としたときに
半角カナのファイル名が文字化けする現象がなくなりました。
不本意ながら、全てのユーザに半角カナのファイル名を使わないように
徹底することが難しいので、このような形で運用してみたいと思います。

# 次世代 namazu では、libiconvを用いる予定らしいので、
# このような問題は気にする必要はなくなるかもしれません。

最後になりましたが、フォローしていただいた Okano さん、
お付き合いいただきまして、どうもありがとうございました。

また何かありましたら、よろしくお願いします。

--
   広島市立大学 情報科学部 情報機械システム工学科
     竹迫 良範 <takesako@xxxxxxxxx>

Attachment: codeconv.c.patch
Description: Binary data

Attachment: codeconv.pl.patch
Description: Binary data