Мой первоначальный ответ был:
Использование [NSString stringByReplacingOccurrencesOfString:withString:]
(reference).
NSString *string = @"\U0420\U043e\U0437\U044b";
NSString *converted = [string stringByReplacingOccurrencesOfString:@"\\"
withString:@"\\\\\\"];
Однако сейчас я не думаю, что это верно, учитывая \
символы не будет на самом деле существуют в string
; вместо этого компилятор преобразует каждую из этих последовательностей в символ Юникода. Вам нужно будет кодировать string
как это:
NSString *string = @"\\U0420\\U043e\\U0437\\U044b";
Для того, чтобы использовать код выше. Я не вижу никакой альтернативы этому.
Дальнейшее обновление: Часто, когда я сталкивался с такими вопросами, возникает путаница между строковыми литералами и строковыми данными. В вашем вопросе те символы \
не будут отображаться, поскольку компилятор преобразует их в символы Юникода (\Uxxx
- это escape-последовательность юникода для одного символа). Однако, если вы предоставили такую строку во время выполнения (скажем, прочитайте из текстового файла), тогда будут существовать те символы \
, и вы можете использовать приведенный выше код.
Непонятно, что вы хотите, поскольку эти строки одинаковы? – trojanfoe
Извините, я только что исправил – Asike