36

I have a long NSString in which I m trying to replace special characters. Part of my string looks like this:

"veau (c\u00f4telette)","veau (filet)","agneau (gigot)","agneau (c\u00f4telette)","b**\u0153**uf (hach\u00e9)","porc (hach\u00e9)"

I would like to replace all the \u0153 with "oe". I've tried:

[response stringByReplacingOccurrencesOfString:@"\u0153" withString:@"oe"];

but it doesn't work.... I don't understand why!

Jonathan Leffler
  • 698,132
  • 130
  • 858
  • 1,229
ncohen
  • 6,936
  • 21
  • 70
  • 118

2 Answers2

86

The backslash is an escape character, so if you want to specify the actual backslash character in a string literal, you need to use two backslashes.

NSString *new = [old stringByReplacingOccurrencesOfString: @"\\u0153" withString:@"oe"];
Josh Freeman
  • 2,252
  • 16
  • 14
7

NSString is immutable, so the function generates a new string that you have to store:

NSString *new = [old stringByReplacingOccurrencesOfString:@"\u0153" withString:@"oe"];
eWolf
  • 3,483
  • 2
  • 29
  • 40