2016-05-31 8 views
10

Podczas wysyłania emoji na serwer "\ ud83d \ ude0e" (emoji unicode) w podanym formacie, serwer nie mógł zrozumieć kodu i podczas wysyłania powiadomień push z serwera do urządzenia, powiadomienie nie nadchodzi.Jak kodować emoji podczas wysyłania na serwer (Ruby on Rails)?

Użyłem:

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

do kodowania wiadomości (Emotikon) podczas wysyłania i używane:

NSData *data = [strReceivedMsg dataUsingEncoding:NSUTF8StringEncoding]; 
NSString *goodValue = [[NSString alloc] initWithData:data encoding:NSNonLossyASCIIStringEncoding]; 

podczas odbierania wiadomości.

Proszę sugerują, jak rozwiązać ten problem

Dzięki

+0

Jakie są rzeczywiste bajty są odbierane przez serwer, i zrobić swoje HTTP (Jestem przy założeniu mówimy tutaj o HTTP) nagłówki deklarują poprawne kodowanie znaków? –

+0

Używamy gniazda internetowego do przesyłania wiadomości. W rzeczywistości jest to funkcja czatu. Kiedy wysyłam emotikony przez gniazdo, serwer uzyskuje kod uni, a "\" jest usuwany przez "\\", który jest nierozpoznawany przez iOS. Jaki będzie standardowy format wysyłania emoji, który będzie obsługiwany przez serwer, a także na platformach między innymi –

+0

Co rozumiesz przez "serwer nie mógł zrozumieć kodu"? Czy otrzymujesz komunikat o błędzie? Nie jestem dobrze zorientowany w rozwoju iOS, ale kodowanie 'NSNonLossyASCIIStringEncoding' jest podejrzane. Jeśli masz emoji, twój ciąg nie jest ASCII. –

Odpowiedz

9
NSString *string = @"This is \u00B7"; 

Zamiast \ u00B7 dodać swoją wartość Unicode. Jego rozwiązanie robocze.

+0

Pushkraj, mówiąc o dodaniu kodu "\ ud83d \ ude0e". Już to wysyłam –

0

w Swift:

Kodowanie: -

let messageData = chatTextView.text.dataUsingEncoding(NSNonLossyASCIIStringEncoding) 
     let finalMessage = String(data: messageData!, encoding: NSUTF8StringEncoding) 

Dekodowanie: -

let data : NSData = str.dataUsingEncoding(NSUTF8StringEncoding)! 
      let message = String(data: data, encoding: NSNonLossyASCIIStringEncoding)