"In Mac OS X's VFS API file names are, by definition, canonically decomposed Unicode, encoded using UTF-8."
-and-
"When returning names [from a VFS plugin] to higher layers (for example, from your VOP_READDIR entry point), you should always return decomposed names. If your underlying volume format uses precomposed names, you should convert any precomposed characters to their decomposed equivalents before returning them to the system."
Apple have a tech note regarding this behaviour:
http:// developer. apple.com/ qa/qa2001/ qa1173. html
Especially:
"In Mac OS X's VFS API file names are, by definition, canonically decomposed Unicode, encoded using UTF-8."
-and-
"When returning names [from a VFS plugin] to higher layers (for example, from your VOP_READDIR entry point), you should always return decomposed names. If your underlying volume format uses precomposed names, you should convert any precomposed characters to their decomposed equivalents before returning them to the system."