> On Sep 22, 2016, at 08:30, Ken Thomases <[email protected]> wrote: > > On Sep 22, 2016, at 6:04 AM, John Brownie <[email protected]> wrote: >> >> I find that I am in need of dealing with versions of strings that may be >> turned into file names, and thus I need to be comparing normalised forms.
If you need to compare unicode strings, you don't need to worry about the normalization form (if any) of either string as long as you either normalize them yourself or your a method of comparing them that does canonical comparison (e.g. -compare:). >> However, according to >> https://developer.apple.com/library/content/qa/qa1173/_index.html, "For >> example, HFS Plus (Mac OS Extended) uses a variant of Normal Form D in which >> U+2000 through U+2FFF, U+F900 through U+FAFF, and U+2F800 through U+2FAFF >> are not decomposed (this avoids problems with round trip conversions from >> old Mac text encodings)." >> >> Is there a way to get at this variant? [NSString >> decomposedStringWithCanonicalMapping] returns "A string made by normalizing >> the string’s contents using the Unicode Normalization Form D." That seems >> not to give what I need, but I haven't seen a better option. Is there such a >> method? > > Without undermining Alastair's recommendations, you can achieve what you want > by round-tripping the string through -[NSString fileSystemRepresentation] and > -[NSFileManager stringWithFileSystemRepresentation:length:]. That handles > the normalization, but it doesn't do anything about characters that aren't > legal in file names on a given file system. That is not entirely correct, whether or not those methods do normalization varies from one OS version to another, and it is not actually part of the API contract. _______________________________________________ Cocoa-dev mailing list ([email protected]) 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 [email protected]
