DLNAサーバとして動かす上で euc-jpなのは何かと不都合なので一気に utf-8へ移行することにした。
convmvというスクリプトをダウンロードしてきてテスト実行。
$ convmv -r -f euc-jp -t utf-8 *
問題のあるファイル名*1 が列挙されるので手動で修正し、本実行。
$ convmv -r -f euc-jp -t utf-8 * --notest
仕上げに smb.conを修正し、sambaを再起動して完了と。
#unixcharset=euc-jp unixcharset=utf-8
TeraTermの漢字コードも TERATERM.INIにて UTF-8に変更。
KanjiReceive=UTF-8 KanjiSend=UTF-8
bashのコードも.bash_profileにて UTF-8に変更。
export LANG=en_US.UTF-8
samba系のマウントオプションも変更。
...,iocharset=utf8,...
注意が必要なのは、チルダや三点リードの類。
これらについて iocharset=euc-jpな sambaを通じて Windowsの FSから読んだファイル名を convmvで変換した結果と iocharset=utf8な sambaを通じて Windowsの FSから読んだファイル名が一致しないので気をつける必要がある。
UNICODEと他コードのマッピング問題の結果だね。
*1 ファイル名自体が長すぎるなど