• 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: Problem with rangeOfString and Umlauts
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Problem with rangeOfString and Umlauts


  • Subject: Re: Problem with rangeOfString and Umlauts
  • From: Jack Brindle via Cocoa-dev <email@hidden>
  • Date: Fri, 11 Mar 2022 13:10:33 -0600

I just placed your code into a short tool in Xcode. What I get is interesting:

prefix_len      unsigned int    15

Which his as you say. But:

space_in_filename       NSRange location=15, length=1

Which is not the same as you say. This is in Xcode 13.2.1. Is something else
going on?

For the record, the body of main contains:

        @autoreleasepool {

                NSString *file_basename = @"Morgendämmerung (1)";
                NSString *info_item = @"Morgendämmerung";

                NSString * prefix = [info_item commonPrefixWithString:
file_basename options: NSCaseInsensitiveSearch ];
                unsigned int prefix_len = (unsigned int) [prefix length];

                NSRange space_in_filename = [file_basename rangeOfString: @" "
options:
NSDiacriticInsensitiveSearch|NSCaseInsensitiveSearch|NSWidthInsensitiveSearch];

            NSLog(@"Break heere");
        }

So what is different?

Jack


> On Mar 11, 2022, at 11:17 AM, Gabriel Zachmann via Cocoa-dev
> <email@hidden> wrote:
>
>
> Well, SSIA.
> In more detail, I've got two strings:
>
> file_basename = @"Morgendämmerung (1)"
> info_item = @"Morgendämmerung"
>
> This code
>
>    NSString * prefix = [ info_item commonPrefixWithString: file_basename
> options: NSCaseInsensitiveSearch ];
>    unsigned int prefix_len = (unsigned int) [prefix length];
>
> yields prefix_len = 15
> as it should.
>
> The problem arises with this line of code:
>
>    NSRange space_in_filename = [file_basename rangeOfString: @" " options:
> NSDiacriticInsensitiveSearch|NSCaseInsensitiveSearch|NSWidthInsensitiveSearch];
>
> which yields space_in_filename.location = 16 !
>
> This thwarts the rest of the code, which, in this case, would expect
> space_in_filename.location = 15.
>
> Needless to say that with strings that do not contain Umlauts, the call of
> rangeOfString:options: works as expected, i.e., in the above example
> space_in_filename.location is as expected (i.e., first character has
> location=0).
>
> I have also tried localizedStandardRangeOfString, with the same effect.
>
> Any ideas what I can do?
>
>
> Best regards, Gabriel
>
>
> _______________________________________________
>
> Cocoa-dev mailing list (email@hidden)
>
> 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:
>
> This email sent to email@hidden

_______________________________________________

Cocoa-dev mailing list (email@hidden)

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:

This email sent to email@hidden

  • Follow-Ups:
    • Re: Problem with rangeOfString and Umlauts
      • From: Keary Suska via Cocoa-dev <email@hidden>
References: 
 >Problem with rangeOfString and Umlauts (From: Gabriel Zachmann via Cocoa-dev <email@hidden>)

  • Prev by Date: Re: Problem with rangeOfString and Umlauts
  • Next by Date: Re: Problem with rangeOfString and Umlauts
  • Previous by thread: Re: Problem with rangeOfString and Umlauts
  • Next by thread: Re: Problem with rangeOfString and Umlauts
  • Index(es):
    • Date
    • Thread