" Invaild普遍性格"对于iOS?

时间:2015-07-31 11:11:47

标签: ios unicode character-encoding

在编写iOS字符串文字时,遇到了一个奇怪的问题。它是Invaild的通用字符。以下代码:

NSString *str = @"\ud83d\udc4d"; // Prompt error: Invaild universal character

但是,以下代码没问题:

NSString *str = @"\u2614\ufe0f"; 

为什么?

另外,我发现只要它是\ ud8xx,\ ud9xx,\ udexx,\ udfxx格式错误。

这是什么原因?

1 个答案:

答案 0 :(得分:1)

Unicode转义序列无法单独编码代理代码点(0xD8000xDFFF之间的代码点),您必须指定实际的补充代码点:

NSString *str = @"\U0001F44D";