Swift通过unicode将国家代码转换成表情符号标志

Swift通过unicode将国家代码转换成表情符号标志,第1张

概述我正在寻找一个快速的方式来转换像: let germany = "DE" 成 let flag = "\u{1f1e9}\u{1f1ea}" 即,D到1f1e9和E映射到1f1ea是什么 我正在查看.utf8的字符串,但这返回一个整数. FWIW我的一般目标是能够使用任意国家代码并获得相应的表情符号标志. 编辑:我也很好,只要持有一个表,做这个映射,如果它可用的地方.我google了,但没有找到它 我正在寻找一个快速的方式来转换像:
let germany = "DE"

let flag = "\u{1f1e9}\u{1f1ea}"

即,D到1f1e9和E映射到1f1ea是什么
我正在查看.utf8的字符串,但这返回一个整数.

FWIW我的一般目标是能够使用任意国家代码并获得相应的表情符号标志.

编辑:我也很好,只要持有一个表,做这个映射,如果它可用的地方.我Google了,但没有找到它.

这是一个将两个字母的国家/地区代码转换成其表情符号标志的通用公式:
func flag(country:String) -> String {    let base = 127397    var usv = String.UnicodeScalarVIEw()    for i in country.utf16 {        usv.append(UnicodeScalar(base + Int(i)))    }    return String(usv)}let s = flag("DE")

编辑Ooops,不需要通过嵌套的String.UnicodeScalarVIEw结构体.事实证明,String是一个追加方法,正是为了这个目的.所以:

func flag(country:String) -> String {     let base : UInt32 = 127397    var s = ""    for v in country.unicodeScalars {        s.append(UnicodeScalar(base + v.value))    }    return s}

编辑再次,在Swift 3中,他们将能够将UnicodeScalar附加到String的功能,并使UnicodeScalar初始化器可用(Xcode 8种子6),因此现在看起来像这样:

func flag(country:String) -> String {    let base : UInt32 = 127397    var s = ""    for v in country.unicodeScalars {        s.unicodeScalars.append(UnicodeScalar(base + v.value)!)    }    return String(s)}
总结

以上是内存溢出为你收集整理的Swift通过unicode将国家代码转换成表情符号标志全部内容,希望文章能够帮你解决Swift通过unicode将国家代码转换成表情符号标志所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1045136.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存