在编写iOS字符串文字时,遇到了一个奇怪的问题。它是Invaild的通用字符。以下代码:
NSString *str = @"\ud83d\udc4d"; // Prompt error: Invaild universal character
但是,以下代码没问题:
NSString *str = @"\u2614\ufe0f";
为什么?
另外,我发现只要它是\ ud8xx,\ ud9xx,\ udexx,\ udfxx格式错误。
这是什么原因?
答案 0 :(得分:1)
Unicode转义序列无法单独编码代理代码点(0xD800
和0xDFFF
之间的代码点),您必须指定实际的补充代码点:
NSString *str = @"\U0001F44D";