Android通过国家名称获取对应的国旗Emoji

遇到一个需求需要通过国家名称,如"CN"、“US”,来展示国家的国旗Emoji标志。

"CN"展示中国国旗Emoji🇨🇳,"US"展示美国国旗🇺🇸,这在输入法表情里其实很常见。

Emoji 是一种 Unicode 符号。基于 Unicode 字符表,表情符号标志由 26 个字母 Unicode 字符 (A-Z) 组成,旨在用于编码 ISO 3166-1 alpha-2 两字母国家代码 (wiki)。
参考:
https://en.wikipedia.org/wiki/Regional_indicator_symbol
https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2

这意味着可以拆分两个字母的国家代码并将每个 A-Z 字母转换为区域指示符号字母:
封装了Kotlin方法如下:

    fun String.toCountryFlagEmoji(): String {
        if (this.length != 2) {
            return this
        }
        if (!this[0].isLetter() || !this[1].isLetter()) {
            return this
        }
        val firstLetter = Character.codePointAt(this.uppercase(), 0) - 0x41 + 0x1F1E6
        val secondLetter = Character.codePointAt(this.uppercase(), 1) - 0x41 + 0x1F1E6
        return String(Character.toChars(firstLetter)) + String(Character.toChars(secondLetter))
    }

更多其他语言下写法可参考:https://it.cha138.com/wen2/show-19384121.html

2014年1月31日的版本“Chromoji - Google Chrome浏览器表情符号”仅支持文本表情符号。 2019年3月23日:随着Unicode 12新表情符号的发布,Douros更新了Symbola 2018年6月20日-本月初,发布了Unicode 11,以及新的表情符号;之后,Dooros更新了Symbola以支持新的表情符号 2018年2月12日--在Unicode 11的新表情符号发布之前不久,Douros更新了Symbola --- 2017年12月2日:在Windows 10 Fall Creators Update发布之际,Douros更新了Symbola以支持更多表情符号,直到今天我才注意到这一点 --- 2017年7月13日:Douros更新了Symbola的时间比我预期的要早,因此我可以在世界表情符号日之前更新扩展名;同样,Windows 10 Fall Creators Update将获得更好的表情符号输入方法,因此,除非您喜欢它们绘制图像的方式,否则EmojiOne键盘将不再有用 --- 2016年7月17日:对于2016年世界表情符号日,我更新了扩展中使用的Symbola副本,使其现在支持Unicode 9.0;幸运的是,乔治·道罗斯毕竟还是更新了字体,因此我不需要使用基于TwemojiEmojiOne的体积更大的SVG-in-OT字体,这些字体在黑白版本中分辨率较高时较不清晰,因为只有Firefox才支持彩色SVG-in-OT,因此Chrome之所以使用它。说到EmojiOne,如果您更喜欢看图形表情符号,或者只是想要一种好的输入法,请使用EmojiOne键盘扩展;考虑通过在EmojiOne键盘设置中关闭“自动替换”功能,将其输入法与此扩展程序对Symbola的使用结合起来 --- 2015年10月12日:现在,该扩展程序使用了更多的惰性函数定义以及ES6符号和ES5属性定义,以进一步将该扩展程序的效果与普通页面脚本区分开来;同样,现在使用的正则表达式会跳过大多数日语文本和CJK Unified字符,并且我提供了一个框架,用于在确定哪些字符可能是表情符号时跳过更多的星体字符(使用正则表达式或一系列正则表达式直接查找表情符号已被证明太慢了) ---为了纪念2015年7月17日世界表情日,我将用户脚本的一些性能改进向后移植到此扩展中,但是我认为这将是表情宝丽(Emoji Polyfill)的最新版本;但是,即使Chrome最终支持Emoticons块的表情符号后备,我仍会保留它,以便使用基于Chromium的旧版浏览器 :party_popper:Windows版Chrome 42支持大多数表情符号范围(尤其是表情符号除外)的本机表情符号后备功能;该扩展程序的工作量不大,但对于基于旧版Chromium的浏览器用户而言,它将保持不变 Chrome for Windows仍然不像其他浏览器那样执行表情符号回退,就像Chrome最近在Mac上开始这样做一样,并且所有浏览器(包括Windows上的Chrome)都可以执行各种脚本。例如,如果声明的字体中不包含那些字符,则Windows上的Web浏览器将退回到Sylfaen,以显示格鲁吉亚和亚美尼亚文字,而Chrome以外的现代浏览器将退回到Segoe UI Emoji(Windows 8+)或Segoe UI Symbol(Windows 7 +)如果声明的字体没有表情符号。此扩展程序通过在检测到的每个可能带有表情符号HTML元素的每个font-family属性的末尾添加一些字体来进行补救。具体来说,它会添加“'Segoe UI Emoji','Segoe UI Symbol',Symbol,EmojiSymb!important”,并将Symbola打包为网络字体,供那些可能没有它或特殊Segoe UI字体的用户使用(例如,Vista用户, XP或Linux)。如果您希望使用UserScript,尽管它的工作速度稍慢,但它可以在Greasy Fork上以与该扩展名相同的名称使用(Emoji Polyfill)。正如简短描述所言,这是Locomojis称为Chromoji的功能更全面的扩展的经过大量修改的分支,我听说它将很快返回到Web Store。如果您想要图形化的Apple或Android风格的表情符号,或者想要方便的输入表情符号的方式,请等待Chromoji回来(如果需要,它将在此处链接);目前,如果要输入表情符号,请尝试使用Windows 8+中的虚拟键盘,或转到GetEmojiEmojipedia。值得注意的相关扩展包括现已停产的“ Chromoji-Hangouts Edition”(使用Google Hangouts风格的表情符
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值