今井です。

大場さんパッチありがとうございました。
いただいたパッチを8.0-RELEASEのsrcに以下のように適用させることで、
無事CP932のファイルシステムをUTF-8のファイルシステムとしてmountすることができるように
なりました。
 # cd /usr/src
 # patch -p1 < ~/kiconv_enhancement_RELENG_8-20091207.diff

http://people.freebsd.org/~imura/kiconv/は参照させていただいていたのですが、
2006年で更新が止まっていたのと、8.0-RELEASEのsrcにpatchを適用させるとrejとなって、
適用できないものがありましたのであきらめていました。
本当にありがとうございました。

1点確認させていただきたいのですが、
今回いただいたパッチで「-E UTF-8:CP932」を指定し、
mount_smbfsでCP932のファイルシステムを、UTF-8でmountできるようになり、
「-C UTF-8」を指定し、mount_cd9660でUTF-8でmountできるようになったのですが、
「UTF-8」の代わりに「utf-8」の場合はパッチを当てる前と同様にUTF-8としてmountできないようです。
これは意図通りでしょうか?
(井村さんのページに書いてある「A bug is about using "utf-8" as small letters.」同じでしょうか?)

また、情報をいただく前に、以下のページにたどりついたのですが、
今回いただいたパッチがsrcツリーに取り込まれることはないのでしょうか?
(2005年から取り込まれていないのは何か理由があるのでしょうか)
http://www.freebsd.org/cgi/query-pr.cgi?pr=bin/121072

EUC-JPからUTF-8に移行を予定されている方への参考情報ですが、
EUC-JPで作成されているディレクトリや、ファイル名について、convmvコマンドを
使えば簡単にUTF-8にできそうです。
ただ、
 # convmv -f euc-jp -t utf-8 (ファイル名)
で変換すると、「〜」が予期しないコードになるようで、samba等で共有しWindowsから
参照すると、少し太字の文字になってしまいます。
この対処として、「japanese/p5-Encode-EUCJPMS」をインストールして
 # enc2xs -C
を実行して、convmvで「eucJP-ms」を以下のように指定すれば予期した通り変換できるようになります。
(enc2xsを実行するまでは、convmvでeucJP-msは指定できません。)
 # convmv -f eucJP-ms -t utf-8 (ファイル名)

以上
よろしくお願いいたします。

2010年1月11日4:02 saxmid <sax...@ceres.dti.ne.jp>:
> 大場@品川です。
>
> http://people.freebsd.org/~imura/kiconv/
> 井村さん作「kiconv パッチ」を利用ください。
>
> ほぼ1年前、
>> [FreeBSD-users-jp 91916]
>> [FreeBSD-users-jp 91917]
>> [FreeBSD-users-jp 91921]
> にてお答えした内容と、現在もほぼ同じ状況?のようです。
> 説明に関しては、過去アーカイブを参照ください。
>
> 8-RELEASEが出た頃、タイムリーに運用サーバが故障してしまい
> 再度パッチ当てを再現したところでした。
>
> *.rejを処理しながら、徐々にUTF-8等を考慮した内部構造に変化
> していっているなーと感じました。もう少しでこの作業も不要に
> なるのでは?と期待しています。
>
> RELENG_8(20091207)に対して一発適用できるものを作ってお
> いたので、添付させて頂きます。おそらく8-RELEASEや上記日
> 付以降のものでも、まだ修正なしに適用可能かと思われます。
>
> 詳細な利用方法に関しては、それぞれのマニュアルやソース
> Web検索「kiconv+imura」にて先達の情報を参照願います。
>
> mount_smbfs限定ですが、マウント時のコード指定は、
> /etc/nsmb.conf 内「charsets=UTF-8:CP932」で行っています。
> こうするとshare毎ではなく、対ホスト毎またはdefault設定に
> できるので、運用が楽です。
>
> 以上、ご参考になれば。
>

メールによる返信