2016-05-31 19 views
10

Mentre invio l'emoji al server "\ ud83d \ ude0e" (emoji unicode) nel formato specificato, il server non è in grado di capire il codice e durante l'invio della notifica push da server a dispositivo, la notifica non viene.Come codificare emoji durante l'invio al server (Ruby on Rails)?

ho usato:

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

per codificare il messaggio (emoji) durante l'invio e usati:

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

durante la ricezione dei messaggi.

Si prega di suggerire come risolvere questo problema

Grazie

+0

Quali sono i byte effettivamente ricevuti dal server, e fare il vostro HTTP (sto assumendo stiamo parlando di HTTP qui) le intestazioni dichiarano la corretta codifica dei caratteri? –

+0

Stiamo utilizzando la presa Web per trasferire il messaggio. In realtà è una funzionalità di chat. Così, quando invio un'emoji su un socket, il server riceve il codice uni e "\" viene evaso da "\\" che non è riconosciuto da iOS. Quindi quale sarà il formato standard per inviare emoji che sarà supportato dal server così come in cross platform anche –

+0

Cosa intendi con "il server non riesce a capire il codice"? stai ricevendo un messaggio di errore? Non sono esperto nello sviluppo di iOS, ma la codifica 'NSNonLossyASCIIStringEncoding' è sospetta. Se hai emoji la tua stringa non è ASCII. –

risposta

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

Invece di \ u00B7 aggiungere il valore unicode. La sua soluzione di lavoro.

+0

Pushkraj, si sta dicendo di aggiungere il codice "\ ud83d \ ude0e". Sto mandando questo già –

0

a Swift:

Encoding: -

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

decodifica: -

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