Вопрос по ios, uitextview, unicode, nsstring – Вставка Unicode Hyphen-minus в строку вызывает ошибку
Я пытаюсь вставить символ дефис-минус Юникода в текстовую строку. Я вижу "Неверный универсальный персонаж" ошибка со следующим:
u + 002D (дефис-минус)
[textViewContent insertString:@"\u002D" atIndex:cursorPosition.location];
Тем не менее, они работают нормально:
U + 2212 (минус)
[textViewContent insertString:@"\u2212" atIndex:cursorPosition.location];
U + 2010 (дефис)
[textViewContent insertString:@"\u2010" atIndex:cursorPosition.location];
Я прокомментировал некоторые из существующих обсуждений Unicode здесь, но я не нашел ни одного, который объяснял бы, что отличается среди моих примеров, что приводит к ошибке первого. Понимание высоко ценится.
@"\u002D"
вместо того@"-"
?
Jeffery Thomas
вание. В C99 и C ++ 98 вам не разрешалось использовать тот, который ссылался на символ в базовом наборе символов (который включает U + 002D).
C ++ 11 обновил это требование, поэтому, если вы находитесь внутри строкового или символьного литерала, вам разрешено использовать UCN, который ссылается на основные символы. В зависимости от используемой версии компилятора, я думаю, вы можете использовать Objective-C ++ 11, чтобы сделать ваш код легальным.
Тем не менее, поскольку этот символ является частью ASCII и базового набора символов, почему бы вам просто не написать его буквально?
@"-"
-
not - это если ваш компилятор ожидает кодировку входного файла не ascii. И в этом случае у вас будут большие проблемы.
bames53