gpt4 book ai didi

Swift 编码/解码表情符号

转载 作者:可可西里 更新时间:2023-10-31 23:52:23 24 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,不仅表情符号。解码是通过反转转换来完成的:

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/44220794/

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