@port139 Blog

基本的にはデジタル・フォレンジックの技術について取り扱っていますが、記載内容には高確率で誤りが含まれる可能性があります。

Mac OS Xのファイル名

昨日開催されたジンジャエールを飲み続ける会(嘘)において、Mac OS X のファイル名の取り扱いについて話題に出たのでちょっとメモ。
Mac OS X では、ファイル名の文字コードとして UnicodeUTF-8)が利用されており、UNICODE 正規化による分解された状態で保存されているというお話だったかと思います。
おっと、互換分解(NFKD)だと思って発言をしてたんですが、よく読むと正しくは NFD ってことですかね、間違っておりましたm(_ _)m

Unicode に関する微妙な問題
http://developer.apple.com/jp/technotes/tn1150.html#UnicodeSubtleties

Mac OS X から分解するのかと思っていたのですが、実はその前のバージョンでも分解していたんですね知りませんでした。
Unicode に関する微妙な問題より引用

注意:
Mac OS バージョン 8.1 から 10.2.x にかけては Unicode 2.1 に基づく分解を使用します。 Mac OS バージョン 10.3 からは Unicode 3.2 に基づく分解を使用します。 分解方式が変わった大半の文字は、Mac のどのエンコーディングでも使用されていないので、HFS Plus ボリュームに現れる可能性は低いです。 分解方式の変更が最も多かったのは、MacGreek エンコーディングです。

Windows 環境では NFD された文字列とかに対応しているフォントなどがないので、例えば EnCase 上で Arial Unicode MS フォントを利用して、HFS+ の分解された日本語ファイル名を表示しようとすると、字形がないので適切に表示できず□になったりしますね。
あれ?Windows 環境で NFD により分解されている文字列を適切に表示するのって可能でしたっけ?なんか Vista 以降ならいけそうな雰囲気に読める記事もあるので、EnCase でどうなるかは今後試してみよう。

.NETでのUnicode合成文字の処理について調べた
http://itpro.nikkeibp.co.jp/article/COLUMN/20070115/258726/

Windows 環境で Unicode な文字列を遊ぶときには BabelPad を使っているんですが、皆さんは何使われているんですかね?

BabelPad (Unicode Text Editor for Windows)
http://www.babelstone.co.uk/Software/BabelPad.html

Mac OS X 用だと UnicodeChecker なるツールなんてのもあるんですか、なかなか面白そうですね。
HFSX については下記に記載がありますね。

http://developer.apple.com/jp/technotes/tn1150.html#HFSX
HFSX は HFS Plus への拡張であり、HFS Plus と互換性のない追加機能を可能にします。 現時点で定義されているそのような機能は、唯一、ファイル名の大文字小文字の区別だけです。

EnCase 上では X のシグネチャバイトを HFS+ と同じに書き換えることでマウント可能ということだったと思いますが、試したことはありません。