« HFS+のFile名格納 | トップページ | ffmpeg 3.2.4 »

2017年2月 4日 (土)

UTF-8-MAC検証

HFS+のFile名検証のさらに続編です。

HFS+のジャーナルとSpotlightのインデックス記録がどうやらUTF16らしい。ならばこれを止めてバイナリサーチすればハッキリしますね。

Terminalからだと、
>diskutil disableJournal disk1s2 でdisk1s2のジャーナル停止。
>sudo mdutil -a -i off  でSpotlight全停止

で、停止してからUSBメモリを初期化、「ばびぶべぼ」の空きFileを作ってからumountし、ddでiso化した。

バイナリサーチで、「べぼ」はUTF-8-MACでは「E381B8E38299E381BBE38299」、
UTF16はUTF16BEでもLEでもひっかかるように「70307330763079307C」で検索してみた。

Isodump

[ばびぶべぼZXBBA9]のFile名ダンプ

結果:
UTF-8-MACで「べぼ」はヒットアリ。固まった場所に複数。 UTF16はヒット「なし」でした。

ただ、1byte文字はUTF8(=UTF-8-MACと同じ)ではなく、独自エンコードでした。

結果としてわかったことは、
「MacのFile名はHFS+にはAPI上はUTF-8-MAC読み出しだが、DISKの記録上はUS-ASCll部分は独自のエンコード、複数Byteの漢字部分はUTF-8-MACでの記録である」

また、
「HFS+のジャーナル記録とSpotlightのインデックス記録はUTF16らしい」というのも今回わかりましたね。

macOS Sierra で、2GBのUSBメモリをディスクユーティリティ.appで初期化して検証しました。

いや〜、調べてみると新事実が出てくるものですね。(驚き!)

|

« HFS+のFile名格納 | トップページ | ffmpeg 3.2.4 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: UTF-8-MAC検証:

« HFS+のFile名格納 | トップページ | ffmpeg 3.2.4 »