SWIFT编码/解码表情符号 [英] Swift Encode/decode emojis

查看:123
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆