Search code examples
objective-cunicodereplacensstringnsstringencoding

How to find and replace a particular unicode character with a non-unicode character in an NSString?


I am being provided a string that may have a unicode apostrophe in it (\u2019) and I must replace it with a standard apostrophe (plain old "'"). I usually use stringByReplacingOccurrencesOfString to do this kind of thing but trying this does not work:

sMyString = [sMyString stringByReplacingOccurrencesOfString:@"\\u2019" withString:@"'"];

Makes sense that it didn't work I guess since the actual values representing the apostrophe internally in the NSString will be numeric. Anyone know how to do this?


Solution

  • If sMyString has the actual character then either do:

    sMyString = [sMyString stringByReplacingOccurrencesOfString:@"\u2019" withString:@"'"];
    

    or:

    sMyString = [sMyString stringByReplacingOccurrencesOfString:@"’" withString:@"'"];
    

    Both of these actually compile to the same code. The \u2019 is replaced by during compilation.