是在「專用區」 U+E000..U+F8FF
一個Unicode字符,所以這可能不是你想要顯示的字符。
另一方面,U+1F44D
是「THUMBS UP SIGN」,因此您的Web服務可能不會爲大於0xFFFF
的Unicode字符創建正確的JSON響應。
根據JSON RFC,不屬於「Basic Multilingual Plane」的字符可以使用UTF-16代理對進行轉義。對於U+1F44D
字符,JSON Unicode轉義序列將是「\ ud83d \ udc4d」。
下面的代碼顯示了它的工作原理一般:
const char *s = "{ \"content\": \"\\ud83d\\udc4d\", \"id\": 104, \"time\": 1350359055 }";
NSData *jsonData = [NSData dataWithBytes:s length:strlen(s)];
NSError *error;
NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error];
self.label.text = [jsonDict objectForKey:@"content"];
這顯示「讚許SIGN」正確的標籤。
但是,您不必轉義字符,Web服務也可以發送UTF-8序列。