2015-07-28 4 views
3

Я разрабатываю приложение для общения в кросс-платформе. Я отправил emojis с iphone на iphone, работая правильно. но когда я пытаюсь отправить на андроид с iphone, не отображается правильно. Android-библиотека понимает Unicode как U + 1F604. Пока я конвертирую emojis в Unicode, он возвращает результат, как \ ud83d \ ude04. Я хочу получить результат 1F604.Преобразование emojis в Юникод

Код

NSData *data = [_txtMessage.text dataUsingEncoding:NSNonLossyASCIIStringEncoding]; 
NSString *msg = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 

Спасибо заранее. :)

+0

"\ ud83d \ ude04" является суррогатной пары, и вполне допустимо в UTF-16 для U + 1F604 --- который является тем, что поддерживает 'NSString'. –

ответ

0

Пожалуйста, попробуйте следующее:

Преобразовать Emoji в юникод

NSData *data = [textView.text dataUsingEncoding:NSNonLossyASCIIStringEncoding]; 
NSString *goodValue = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease]; 

goodValue = [goodValue stringByReplacingOccurrencesOfString:@"\\" withString:@"\\\\"]; 

когда выборки значения с сервера

NSString *goodValue = [StaticClass urlDecode:[dataDict objectForKey:@"comment_text"]]; 
NSData *newdata=[goodValue dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES]; 
NSString *mystring=[[NSString alloc] initWithData:newdata encoding:NSNonLossyASCIIStringEncoding]; 
+0

Я применяю это решение, но оно возвращается как \ ud83d \ ude04. Я хочу получить результат, как 1F604 для SMILING FACE С ОТКРЫТЫМ РИТОМ И СМОТРЕТЬЮ ГЛАЗАМИ. –

+0

не помогает в полном объеме. –

0

// Строка в юникод

если данные позволяют = NormalString.data (используя: String.Encoding.nonLossyASCII), пусть convertString = String.init (данные: данные , Кодирование: String.Encoding.utf8) { возвращение convertedString }

// Unicode в строку

, если позволить данные = UnicodeString.data (с использованием: String.Encoding.utf8), пусть convertedString = Строка .init (данные: данные, кодирование: String.Encoding.nonLossyASCII) { возвращение convertedString }

Смежные вопросы