/ / Swift Encoder / décoder les emojis - swift, encoder, emoji

Swift Encode / décode les emojis - swift, encode, emoji

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 № 1

Votre 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