Macのファイルシステム上での濁点の扱い

こないだ、MP3ライブラリをMacのローカルから、rsyncコマンドでLinuxな家庭内ファイルサーバにごっそり移して以来、何か曲が減ったような気がしていたが、最近ようやく、曲名やアーティスト名、アルバム名に濁点、もしくは半濁点の含まれてた曲にアクセス出来ないようになっているのだという事に気づいた。


うちのMP3ライブラリは iTunes のお約束に従って

iTunes Music/[アーティスト名]/[アルバム名]/[トラック番号] [曲名].mp3

というファイル構造で保管されていた。Mac 上でのファイル名に使われている濁点、半濁点の扱いはやや特殊なので不幸が起きた。ここら辺は Unicode の仕様の都合上、濁点、半濁点が使われる文字を処理するのに「が」というように一文字分のコードで表わすのと、「か゛」の用に二文字分のコードを割り振っておいて一文字として表示するという両方が許容されるらしい。この辺りの話はMac Wikiでも読んで貰うとして、とにかくこのせいで Mac から rsync した時、Linux上に移ったファイルは本来 Linux 上では想定されていない方法で正規化されているので Samba が上手く処理できないという事のようだ。結果、濁点/半濁点がファイルのパスのどこかに含まれている曲が見えない問題が起こる。


Mac に一度 scp や rsync で戻した上で、Samba 越しに転送し直せば Samba が上手い事文字コードの差異を吸収してくれて治るという事がわかったので、転送し直し

$ rsync 192.168.1.x:/home/xxx/Music/ /Volumes/xxx/Music.new/

この件は subversion にも影響するらしい。うーん。会社で起きたら厄介そうだ。日本語含むパスは管理させないで下さいってお願いするか。