Windows verwendet UTF-16. Die meisten Codepunkte sind in zwei Bytes codiert. Codepoints außerhalb der BMP (Basic Multilingual Plane) codieren in einem "Ersatzpaar", das vier Byte benötigt. Windows normalisiert Dateinamen nicht mit einem Unicode-Normalisierungsformular.
Dies bedeutet, dass Sie zwei Dateinamen haben können, die identisch aussehen mit einem mit einem vordefinierten "é", das aus einem einzelnen Codepunkt besteht, und der andere mit einem regulären ASCII "e", gefolgt von einem Unicode, der akuten Akzent kombiniert, also zwei Codepunkte.
OS X verwendet UTF-8. Codepunkte werden mit einem bis fünf Bytes codiert. OS X verwendet Unicode NFD (Normalization Form Canonical Decomposition).
Das bedeutet, wenn ein Unicode-Zeichen wie "é" in einem Dateinamen verwendet wird, wird es vom System immer in ein reguläres ASCII-Zeichen "e", gefolgt von einem Unicode mit akutem Akzent, normalisiert und nimmt immer zwei Codepunkte an.
Tatsächlich verwendet OS X abhängig von der Version von OS X die Spezifikation von Unicode NFD entweder aus der Unicode-Version 2.1 oder 3.2.
Hier ist eine schöne Seite, die die Feinheiten in der Dateinamencodierung von OS X / HFS + behandelt.