gpt4 book ai didi

Swift 编码/解码表情符号

转载 作者:行者123 更新时间:2023-11-30 12:19:47 31 4
gpt4 key购买 nike

我正在尝试对表情符号进行编码和解码,以将它们发送到我的数据库。

我用它来编码:

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
}

而且它有效。但现在我不知道如何解码表情符号。

这是编码的类型 --->\ud83d\ude1a

最佳答案

您的编码代码可以简化为

func encode(_ s: String) -> String {
let data = s.data(using: .nonLossyASCII, allowLossyConversion: true)!
return String(data: data, encoding: .utf8)!
}

请注意,它不仅对所有非 ASCII 字符进行编码表情符号(作为 \uNNNN,其中 NNNN 是 Unicode 字符的十六进制代码,或作为 \NNN,其中 NNN是八进制代码)。解码是通过反转转换来完成的:

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 \ud83d\ude03.

if let d = decode(e) {
print(d) // Hello 😃.
}

当然你也可以将代码定义为扩展方法String 类型,您可能希望选择更好的函数名称。

关于Swift 编码/解码表情符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44940889/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com