SWIFT编码/解码表情符号 [英] Swift Encode/decode emojis
本文介绍了SWIFT编码/解码表情符号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试对emoji进行编码和解码,以便将它们发送到我的数据库。
我使用此代码进行编码:
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
}
而且很管用。但现在我不知道如何破译这个表情符号。
这是编码类型->ud83dude1a
推荐答案
您的编码代码可以简化为
func encode(_ s: String) -> String {
let data = s.data(using: .nonLossyASCII, allowLossyConversion: true)!
return String(data: data, encoding: .utf8)!
}
请注意,它将所有非ASCII字符编码为uNNNN
,而不仅仅
表情符号。解码是通过反转转换来完成的:
func decode(_ s: String) -> String? {
let data = s.data(using: .utf8)!
return String(data: data, encoding: .nonLossyASCII)
}
这将返回一个可选的,因为它可能会因为无效输入而失败。
示例:
let s = "Hello 😃."
let e = encode(s)
print(e) // Hello ud83dude03.
if let d = decode(e) {
print(d) // Hello 😃.
}
当然,您也可以将代码定义为
String
类型,您可能需要选择更好的函数名称。
这篇关于SWIFT编码/解码表情符号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文