覚書:ファイル名について

コンピュータでデータを保管・管理するときに、その管理方法を決めるのがファイルシステム。
Max OS Xでは、一般にHFS+、WindowsではNTFSやFATといったファイルシステムが使われます。


Mac OS Xで使うHFS+は、
 最大で約16テラバイトまでのファイルを扱うことができ(理論的には16エクサバイトまで)、ファイル名は最大255字までのユニコード文字が使えます。
Windows XPで使うNTFSは、
 最大で16エクサバイトまでのファイルを扱え、ファイル名は260字(絶対パスを含む)まで、ユニコードが使えます。

ユニコードには同じ文字を表現するのにいくつものやり方があり、
『が』という文字を表現する場合、
ユニコードでは「U+304C」という番号が割り当てられてます。
これはシフトJISなど他の文字コードと同じですが、そのほかに「か」(U+304B)と「゛」(U+3099)を合成することでも「が」を表現できるようになっている。


ユニコードの正規化形式は4種類
1つに合成されている「が」はNFC形式
「か」+「゛」のように分解されているものをNFD形式
その他、NFKD、NFKC。
参考:Unicode正規化


Windowsでは、ファイル名にNFC形式が採用されており、濁音や半濁音は1つの合成済みの文字で表されます
※WindowsではVistaからNFD形式にも対応しているので、UTF-8+NFD形式のファイル名を正しく表示することができる
 http://blogs.sun.com/nishigaya/entry/java_se_6_jar_improvements
Mac OS XではNFD形式が使われています。

例えば、
Mac OS X上で、InDesignに画像を貼り込む
MacOS XはNFDを使うため、画像のファイル名に濁音や半濁音が使われていた場合、基底文字+濁音や半濁音という形で認識される
そのInDesignデータを、Windowsに持ってきて開くと、
WindowsではNFC形式なので、画像のファイル名の濁音や半濁音は自動的に1文字の形(NFC形式)に変換されます。
ところが、
InDesignの内部に保持されているファイル名はNFD形式のままです。
そのため、リンク切れとなってしまいます。しかも、NFD形式はWindowsでサポートされていないので、結合文字の部分は文字化けしてしまいます。

※InDesignは、リンク画像に対してファイル名のユニコード正規化を行っておりその正規化形式はバージョンによって変わる場合がある
 InDesign CSとInDesign CS2でユニコードの正規化形式が変更されている
 ●InDesignの勉強部屋_CS2_ユニコードの正規化


このようなトラブルを防ぐには、
ファイルの命名規則や使用するソフトのバージョンやファイル形式など、ルールを作りしっかり守ることが重要。


トラブルを避けるために、ファイル名に使用を避けた方がよい文字
/ \: ; * ? < > , $ % | " .
スペースまたはタブを含むファイル名、ピリオドで始まるファイル名
アクセント記号の付いた文字(Ú、ñ、ë など)


メモ:
特定のバージョンのイラストレータのでは、リンクするファイルのファイル名を「拡張子を含めて31文字以内」でないと危険なようです
[2057][Illustrator]ファイル名が長い場合リンク切れを起こす場合があります(MacOSX版)
http://blog.ddc.co.jp/mt/dtp/archives/20050802/122413.html

覚書:ファイル名について への1件のコメント

  1. no_ya より:

    OSXでファイル名に使える文字について復習してみる|覚書:ファイル名について | KYS-LAB_ueda http://goo.gl/Epapy