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

923 Views Asked by At

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?

2

There are 2 best solutions below

2
On BEST ANSWER

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.

1
On
sMyString = [sMyString stringByReplacingOccurrencesOfString:@"\U2019" withString:@"'"];

Do not use \U2019, it makes an error.