0

我调用 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。为什么?

4

2 回答 2

0

尝试这个

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

"];

于 2013-10-17T03:12:58.287 回答
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];
于 2013-10-17T03:32:39.777 回答