I'm trying to encode and decode Emojis to send them to my database.
I use this to encode:
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
}
And it works. But now I don't know how to decode the emoji.
This is the type of encode ---> \ud83d\ude1a
I fixed this. If you have a server with encode utf8mb4, then for encoding emojis use this code:
DECODING:
Your encoding code can be simplified to
Note that it encodes all non-ASCII characters as
\uNNNN
, not only Emojis. Decoding is done by reversing the transformations:This returns an optional because it can fail for invalid input.
Example: