При написании строкового литерала iOS встречается странный вопрос. Это Invaild универсальный character.The следующий код:"Invaild универсальный символ" для iOS?
NSString *str = @"\ud83d\udc4d"; // Prompt error: Invaild universal character
Но, следующий код нормально:
NSString *str = @"\u2614\ufe0f";
Почему?
Кроме того, я обнаружил, что до тех пор, пока это ошибка \ ud8xx, \ ud9xx, \ udexx, \ udfxx.
Что это за причина?
Исследования определения UTF8. Символы символов '\ u' интерпретируются как символы ASCII/UTF8, а не UTF16/32. Любой символ UTF8, начинающийся с '\ udXXX', является специальным кодом в UTF8. –
@HotLicks '\ u' обозначает скалярное значение Unicode и не имеет ничего общего с UTF-8/16/32. –
Да, ты прав. '\ xNN' будет стандартным шестнадцатеричным литералом ASCII/UNICODE. Я немного ржавчу на этих побегах. –