On Aug 27, 2012, at 9:50 AM, Sean McBride <s...@rogue-research.com> wrote:
> On Sat, 25 Aug 2012 17:58:39 +0200, Uli Kusterer said: > >>>> const UInt8 *cpath = (const UInt8 *)[path >> cStringUsingEncoding:NSUTF8StringEncoding]; >>> >>> -UTF8String is shorter. >> >> Both of these are wrong, though. You should *always* use - >> fileSystemRepresentation when you need a C-string representation of a >> path. Otherwise you might get decomposed characters that don't match the >> actual way the characters are stored on disk, and will create a second >> file with an almost-indistinguishable name. > > Could you provide an example filename where UTF8String and > fileSystemRepresentation give something different? I'd like to run it > through QA... The primary difference is that the fileSystemRepresentation uses a particular form of unicode composition (if I recall correctly, Decomposed form D). As such if you had a UTF-8 encoded Ä (Latin Capital Letter A with Diaresis) vs A¨ (Latin Capital Letter A with Combining Diaeresis) then you could get different results (and I believe the former would be an invalid file name). Note: this is primarily from memory so this exact example may or may not fail, but should give you a framework for finding ones that do. -- David Duncan _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com