热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Swift编码/解码表情符号

如何解决《Swift编码/解码表情符号》经验,为你挑选了1个好方法。

我正在尝试编码和解码Emojis以将它们发送到我的数据库.

我用它来编码:

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



1> Martin R..:

您的编码代码可以简化为

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

请注意,它不仅将所有非ASCII字符编码为\uNNNNEmojis.通过反转变换来完成解码:

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类型的扩展方法 ,并且您可能希望选择更好的函数名称.


推荐阅读
author-avatar
如果阳光可以穿透心紧俏脏
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有