• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Renaming files?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Renaming files?


  • Subject: Re: Renaming files?
  • From: Clark Cox <email@hidden>
  • Date: Wed, 22 Dec 2004 14:30:43 -0500

On Wed, 22 Dec 2004 20:03:20 +0100, Christoffer Lerno <email@hidden> wrote:
> On Dec 22, 2004, at 17:30, Clark Cox wrote:
>
> > On Wed, 22 Dec 2004 10:56:08 +0100, Christoffer Lerno <email@hidden>
> > wrote:
> >> Basically I want to know what the heck my file is called after it's
> >> renamed... :) It isn't exactly what I renamed it to, even though it
> >> prints and looks the same.
> >
> > You're forgetting canonical equivalence. Many Unicode characters can
> > be represented multiple ways, but are meant to be considered
> > canonically equivalent. For example, the character "ΓΌ" (u with an
> > umlaut, if it gets mangled in transmission) can be represented by
> > either:
>
> I figured that was the problem, but how do I get around this problem?
>
> > A single Unicode codepoint: U+00FC
> > Or two codepoints: U+0075 U+0308
>
> Yes, when I store it, it gets defaulted to whatever scheme the
> filesystem is using. Problem is I still have my NSString in the other
> form... I need to translate this string to the filesystem unicode rep,
> but how? Aside from reading the whole directory and do a compare: and
> retrieve the name by way of searching the whole directory... :-/

I'm just wondering:
If NSFileManager handles the differently normalized strings
appropriately, and -[NSString compare:] also works, then what more do
you need? Basically, my question is: Why do you need to use -isEqual:
instead of -compare:?

If you really need to use isEqual:, then you need to normalize the
strings to the same normalization form (should probably use NFD or
NFC); Like so:

NSString *string1 = ...;
NSString *string2 = ...;

string1 = [string1 decomposedStringWithCanonicalMapping];
string2 = [string2 decomposedStringWithCanonicalMapping];

if([string1 isEqual: string2])
{
 ...
}
else
{
 ...
}

--
Clark S. Cox III
email@hidden
http://www.livejournal.com/users/clarkcox3/
http://homepage.mac.com/clarkcox3/
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

References: 
 >Renaming files? (From: Christoffer Lerno <email@hidden>)
 >Re: Renaming files? (From: Jeremy Dronfield <email@hidden>)
 >Re: Renaming files? (From: Christoffer Lerno <email@hidden>)
 >Re: Renaming files? (From: Clark Cox <email@hidden>)
 >Re: Renaming files? (From: Christoffer Lerno <email@hidden>)

  • Prev by Date: More authorization woes, the methods giving me trouble
  • Next by Date: Re: iCal Alarms
  • Previous by thread: Re: Renaming files?
  • Next by thread: NSMatrix beeping when sheets are running
  • Index(es):
    • Date
    • Thread