快速通过Unicode将国家代码转换为表情符号标志

我正在寻找一种快速的方法来使类似:

let germany = "DE"

进入

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

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

FWIW我的总体目标是能够采用任意国家/地区代码并获得相应的表情符号标志。

编辑:我也很好,只要持有一个做此映射的表(如果有的话)。 我在附近搜索,但没有找到。

5个解决方案

72 votes

这是将两个字母的国家/地区代码转换为其表情符号标志的通用公式:

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")

编辑糟糕,无需传递嵌套的String.UnicodeScalarView结构。 事实证明,String正是出于此目的使用了append方法。 所以:

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附加到字符串的功能,并且使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)

}

matt answered 2020-07-22T14:45:22Z

17 votes

如果有人在Objective C中寻找解决方案,这是方便的类别:

@interface NSLocale (RREmoji)

+ (NSString *)emojiFlagForISOCountryCode:(NSString *)countryCode;

@end

@implementation NSLocale (RREmoji)

+ (NSString *)emojiFlagForISOCountryCode:(NSString *)countryCode {

NSAssert(countryCode.length == 2, @"Expecting ISO country code");

int base = 127462 -65;

wchar_t bytes[2] = {

base +[countryCode characterAtIndex:0],

base +[countryCode characterAtIndex:1]

};

return [[NSString alloc] initWithBytes:bytes

length:countryCode.length *sizeof(wchar_t)

encoding:NSUTF32LittleEndianStringEncoding];

}

@end

测试:

for ( NSString *countryCode in [NSLocale ISOCountryCodes] ) {

NSLog(@"%@ - %@", [NSLocale emojiFlagForISOCountryCode:countryCode], countryCode);

}

输出:

java匹配unicode符号和表情_快速通过Unicode将国家代码转换为表情符号标志相关推荐

  1. java匹配unicode符号和表情_使用java .jar的表情符号unicode问题

    我正在开发J2SE中的聊天应用程序,它也可以向其他用户发送表情符号. 我跟踪了该链接上描述的所有内容,All在开发环境中运行良好,但是当我为此制作jar时,当我向web上的其他用户发送表情符号时,它显 ...

  2. java中特殊符号怎么校验_校验中文、空格和特殊符号的方法

    开发中经常校验输入的文字合法性,中文.空格和特殊符号等.总结一下这些问题的校验方法: 1)中文 js实现: function ischinese(str){ if(/[^\x00-\xff]/g.te ...

  3. java 判断int是几位_快速判断一个int值是几位数

    快速判断一个int值是几位数 判断一个int值是几位数,想到除法和模运算了,偶然在Java标准API源码中发现的写法,很强大. 文艺青年(存在Integer包中) public class Test ...

  4. pc展示emoji表情_如何在智能手机或PC上使用表情符号

    pc展示emoji表情 While emoji has been big in Japan for many years (it originated there), it has only been ...

  5. java 验证码图片不显示图片_验证码图片不显示,代码如下,求大神解答谢谢

    index.jsp pageEncoding="UTF-8"%> Insert title here function reloadCode() { var time=new ...

  6. go string 换行_从词法分析角度聊 Go 代码组成

    之前的 Go 笔记系列,已经完成到了开发环境搭建,原本接下来的计划就是到语法部分了,但后来一直没有前进.主要是因为当时的工作比较忙,分散了精力,于是就暂时放下了. 最近,准备重新把之前计划捡起来. 第 ...

  7. Java char所占用的字节_关于unicode:为什么Java char原语占用2个字节的内存?

    有什么理由为什么Java char原始数据类型为2个字节而不像C为1个字节? 谢谢 简短的答案是因为它们无聊:他们应该使用32位字符. 不,他们不应该使用32位宽的字符. 这将使开销更大! @ vy3 ...

  8. java使用unicode过滤emoji表情

    最近搞个微信公众号的项目,如果微信用户名有表情符号的,那么在我们的系统里面就会保存不了.最初的解决方案是把数据库的utf8格式改为utf8mb4.这样就能兼容保存emoji表情符号,后面又发现,保存的 ...

  9. java%3e%3e=符号_android中一些特殊字符(如:←↑→↓等箭头符号)的Unicode码值...

    在项目中,有时候在一些控件(如Button.TextView)中要添加一些符号,如下图所示: 这个时候可以使用图片的方式来显示,不过这些可以直接使用Unicode码就直接显示出来了. 4个箭头图标的代 ...

最新文章

  1. 使用postMan测试erp系统登录接口
  2. 攻克指针(三)~自我总结篇
  3. 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和
  4. C#3.0-新增加功能浅析(1)
  5. c#排序算法(待续)
  6. HandlerThread
  7. 迪杰斯特拉算法 php,Dijkstra算法的复杂度
  8. rhel7+apache+c cgi+动态域名实现web访问
  9. 大规模部署桌面虚拟化时的问题
  10. 停在Z的危险:用苏斯博士的话,为什么孩子应该编码
  11. 我的几个.NET编程习惯
  12. 改进的EfficientNet-B4用于黑色素瘤检测
  13. scala下划线的用法
  14. 循环神经网络系列(二) LSTM 和 GRU
  15. Android关闭输入法键盘
  16. 应急响应入侵排查之第二篇Linux
  17. python图书库存管理系统_基于Odoo的物流库存管理系统的设计(Python)
  18. IM 产品设计思考(3) - 呼叫中心及IVR
  19. Shell脚本之免交互操作
  20. 【Python爬虫】:模拟登录QQ空间

热门文章

  1. 新四级冲刺需牢记的700核心词
  2. EXCEL附注生成WORD附注(XLS2DOC) 下载
  3. windows下插入u盘怎么使用qt进行读取_【技术篇】Windows系统使用爱思助手制作越狱 U 盘教程...
  4. java项目运行在浏览器_在 Java 程序中,能在 WWW 浏览器上运行的是 程序。_学小易找答案...
  5. Error instantiating class com.demo.pojo.UserPojo with invalid types () or values ()
  6. 【分享】2017年秋季苹果发布会乔布斯录音稿
  7. 【html】浏览器与服务器
  8. 中国企业直播市场发展趋势
  9. 使用企业微信快速注册腾讯云账号的方法
  10. 换了3个手机,一直舍不得卸载的4款APP,款款良心!