やらかしたので反省文 iOS10.3にてファイルシステムが HFS+からAPFSに強制変換されましたが 濁点など含むファイル名にてfopenなどの下位関数にアクセスする際 Stringなどからconst char* への変換は UTF8String ではなく fileSystemRepresentation を使いましょう。 ざくっと調べた 検証コードを整えるのが面倒なので結果だけ 合成された普通のもの NFC : "だ" 3080 (1文字は1文字) 正規化分解NFD : "だ" 305F 3099 (濁点分割して検索なんかも楽しそうよね) HFS+でもAPFSでもファイル名は正規化分割NFDされて保存される (前からそう) HFS+では分割されていてもいなくても(NFD,NFC)同じNFDファイル名にアクセスできる、おそらくどこかでうまく処理してくれていたのだろう APFSではfope