Ios 在目标C中将字符串转换为unicode

Ios 在目标C中将字符串转换为unicode,ios,objective-c,unicode,hex,Ios,Objective C,Unicode,Hex,我需要将字符串转换为unicode(十六进制)字符,我要使用下面的代码进行unicode到字符串的转换 [NSString stringWithFormat:@"%C",0x2665]; 但我无法完全扭转这种局面 此的代码段是什么取决于您对字符的定义。在您的示例中,我假设[string characterAtIndex:0]就是您要查找的内容(获取字符串中包含的第一个unichar值,对于第一个示例中创建的字符串,该值为0x2665) 但是,您将从中获得一个UTF-16代码点,它可能是也可能不

我需要将字符串转换为unicode(十六进制)字符,我要使用下面的代码进行unicode到字符串的转换

[NSString stringWithFormat:@"%C",0x2665];
但我无法完全扭转这种局面


的代码段是什么取决于您对字符的定义。在您的示例中,我假设
[string characterAtIndex:0]
就是您要查找的内容(获取字符串中包含的第一个
unichar
值,对于第一个示例中创建的字符串,该值为0x2665)


但是,您将从中获得一个UTF-16代码点,它可能是也可能不是一个完整的逻辑字符,也可能不是打印的完整字符。例如,这将无法表示某些表情符号,并且肯定无法表示任何具有特殊肤色或国旗的表情符号。(重要的是,它也可能无法表示某些语言的字符。)

这取决于您对字符的定义。在您的示例中,我假设
[string characterAtIndex:0]
就是您要查找的内容(获取字符串中包含的第一个
unichar
值,对于第一个示例中创建的字符串,该值为0x2665)


但是,您将从中获得一个UTF-16代码点,它可能是也可能不是一个完整的逻辑字符,也可能不是打印的完整字符。例如,这将无法表示某些表情符号,并且肯定无法表示任何具有特殊肤色或国旗的表情符号。(重要的是,它也可能无法表示某些语言的字符。)

得益于objective C。它有编码方法,可以帮助Unicode转换为字符串和字符串转换为Unicode。这是样品

NSString *str = @"♥";
    NSData *dataenc = [str dataUsingEncoding:NSNonLossyASCIIStringEncoding];
    NSString *encodevalue = [[NSString alloc]initWithData:dataenc encoding:NSUTF8StringEncoding];

    NSData *data = [encodevalue dataUsingEncoding:NSUTF8StringEncoding];
    NSString *decodevalue = [[NSString alloc] initWithData:data encoding:NSNonLossyASCIIStringEncoding];

    NSLog(@"%@",decodevalue);

感谢objective C。它有编码方法,可以帮助Unicode转换为字符串和字符串转换为Unicode。这是样品

NSString *str = @"♥";
    NSData *dataenc = [str dataUsingEncoding:NSNonLossyASCIIStringEncoding];
    NSString *encodevalue = [[NSString alloc]initWithData:dataenc encoding:NSUTF8StringEncoding];

    NSData *data = [encodevalue dataUsingEncoding:NSUTF8StringEncoding];
    NSString *decodevalue = [[NSString alloc] initWithData:data encoding:NSNonLossyASCIIStringEncoding];

    NSLog(@"%@",decodevalue);
自定义unicode到表情符号


#定义EmojiCodeToSymbol(c)((0x8080F0 |(c&0x3F000)>>4)|(c&0xFC0)
自定义unicode到表情符号



#定义EmojiCodeToSymbol(c)((((0x8080F0 |)(c&0x3F000)>>4)|(c&0xFC0)这就是问题所在,我想用emojis发送推送通知,因为我需要它。一直使用
NSString
。这并不可怕,但至少不会让你的任务在设计上变得不可能。NSString*str=@"你不能使用此值。它不是一个有效的Unicode字符。它只是一个代码点,构成了表情符号的一半。你必须使用整个NSString。如何做到这一点,请你提供帮助?这就是问题所在,我想用表情符号发送推送通知,因为我需要它。一直使用
NSString
。这并不可怕,但至少可以做到“不要通过设计使您的任务变得不可能。NSString*str=@"您不能使用此值。它不是有效的Unicode字符。它只是一个组成半个表情符号的代码点。您必须使用整个NSString。如何做到这一点,请提供帮助?您在下面的评论中提到,推送通知需要此值。为什么?在iOS应用程序中,在推送通知的哪个级别上,您需要将字符串转换为字符串单个Unicode字符?你应该用你真正想做的事情来更新你的问题,并解释你真正遇到的问题。你在下面的评论中提到,推送通知需要这个。为什么?在iOS应用程序中,推送通知的级别是多少?你需要将字符串转换为单个Unicode字符?你应该upd用你真正想做的事情来回答你的问题,并解释你真正遇到的问题。我已经解决了这个问题。当它作为通知发送时,它显示的是unicode字符本身而不是表情符号(在通知横幅上)。因为我们无法在通知中解码该值,你可以设置“警报”当您发送推送通知时,请按以下键:{“aps”:{“alert”:“High Five,bro\ue012”}。只需附加Unicode字符串即可。我已经添加了Unicode字符串。当它作为通知发送时,它会显示Unicode字符本身而不是表情符号(在通知横幅上)。因为我们无法在通知中解码该值,所以可以设置“alert”当您发送推送通知时,请按以下键:{“aps”:{“alert”:“High Five,bro\ue012”}。只需附加Unicode字符串