2016-05-31 25 views
10

Emoji'yi verilen biçimdeki "\ ud83d \ ude0e" (emoji unicode) sunucusuna gönderirken, sunucu kodu anlayamadı ve sunucudan cihaza push bildirimi gönderirken bildirim gelmiyor.Sunucuya gönderirken emoji nasıl kodlanır (Ruby on Rails)?

kullandığım: gönderme ve kullanılan süre

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

mesajı (emojisi) kodlamak için:

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

mesajları alırken.

sizin unicode değerini ekleyin bu konuyu

Teşekkür

Yerine \ U00B7 ait
+0

, ve HTTP yapmak (I varsayarak Burada HTTP'den bahsediyoruz) başlıklar doğru karakter kodlamasını bildiriyor mu? –

+0

İleti göndermek için web soketi kullanıyoruz. Aslında bir sohbet işlevi. Bu yüzden, soket üzerinden bir emoji gönderirken, sunucu uni kodunu alıyor ve "\" iOS tarafından tanınmıyor "\\" tarafından kaçıyor. Yani sunucu tarafından desteklenecek emoji göndermek için standart biçim ne olacak aynı zamanda çapraz platformda da –

+0

"Sunucu, kodu anlayamadı" ile ne demek istiyorsunuz? Hata mesajı alıyor musunuz? IOS geliştirmede deneyimli değilim ama 'NSNonLossyASCIIStringEncoding' kodlaması şüpheli. Emojiniz varsa, diziniz ASCII değildir. –

cevap

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

nasıl çözüleceği önerin. Onun çalışma çözümü.

hızlı olarak
+0

Pushkraj, "\ ud83d \ ude0e" kodunu eklemeyi söylüyorsunuz. Bunu zaten gönderiyorum –

0

:

Kodlama: -

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

Çözme: -

let data : NSData = str.dataUsingEncoding(NSUTF8StringEncoding)! 
      let message = String(data: data, encoding: NSNonLossyASCIIStringEncoding) 
gerçek bayt sunucu tarafından alınmakta olan ne