IOS的EMoji Unicode

时间:2013-10-17 03:09:17

标签: ios unicode emoji

我调用api并获取包含NSDictionary中的android java unicode的字符串:

\ ud83d \ ude25 \ ud83d \ ude1e \ U2764 \ ud83d \ ude2d

当获取上面的值并分配给字符串时,我只会得到字符串: \ ud83d \ ude25 \ ud83d \ude1e❤\ ud83d \ ude2d

我完全无法获得值\ U2764但是获得值❤ 所以我无法将代码\ U2764替换为IOS unicode。

我怎样才能得到它\ U2764?我转换成UTF-8。

由于

编辑:

这是从api(dic)获取目录:

{

message = "\ud83d\ude25\ud83d\ude1e\U2764\ud83d\ude2d";
mesgid = "213133";
Thumbnail = "";

}

然后我收到消息,但是dic2字符串仍然是\ ud83d \ ude25 \ ud83d \ude1e❤\ ud83d \ ude2d:

const char *cString = [[dic6 objectForKey:@"Message"] UTF8String];

NSString *dic2 = [[NSString alloc] initWithUTF8String:cString];


if ([dic2 rangeOfString:@"\\U"].location==NSNotFound && [dic2 rangeOfString:@"\\u"].location==NSNotFound)
{
    NSLog(@"Substring Not Found");
}
else
{
    NSLog(@"Substring Found");
}

我完全无法获得unicode。 为什么呢?

2 个答案:

答案 0 :(得分:0)

试试这个

 NSString *uniString = [NSString stringWithUTF8String:@"\ud83d\ude25\ud83d\ude1e❤\ud83d\ude2d

“];

答案 1 :(得分:0)

希望这可以解决您的问题

   char cString[] = "\ud83d\ude25\ud83d\ude1e\U2764\ud83d\ude2d";
   NSData *data = [NSData dataWithBytes:cString length:strlen(cString)];
   NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];