J'essaie de coder et de décoder les Emojis pour les envoyer à ma base de données.
J'utilise ceci pour encoder:
var comentario = String()
let data = Comment.data(using: String.Encoding.nonLossyASCII, allowLossyConversion: true)
if let data = data {
let emojiString = NSString(data: data, encoding: String.Encoding.utf8.rawValue)! as String
comentario = emojiString
}
Et il fonctionne. Mais maintenant, je ne sais pas comment décoder les emoji.
C'est le type d'encodage ---> ud83dude1a
Réponses:
10 pour la réponse № 1Votre code de codage peut être simplifié pour
func encode(_ s: String) -> String {
let data = s.data(using: .nonLossyASCII, allowLossyConversion: true)!
return String(data: data, encoding: .utf8)!
}
Notez qu'il code tout caractères non-ASCII comme uNNNN
, pas seulement Emojis. Le décodage se fait en inversant les transformations:
func decode(_ s: String) -> String? {
let data = s.data(using: .utf8)!
return String(data: data, encoding: .nonLossyASCII)
}
Cela retourne un optionnel car il peut échouer pour une entrée invalide.
Exemple:
let s = "Hello