首页 > 解决方案 > 如何替换国家代码以在颤动中标记表情符号

问题描述

我有一个国家列表,其排序名称/国家代码为 json 格式,将在颤振中调用。有没有办法可以用他们的标志表情符号转换所有这些代码?

例如:“sortname”:“PL”将给出(idk,如果你们能看到标志)

{
	"sortname": "PL",
	"name": "Poland",
}, {
	"sortname": "PT",
	"name": "Portugal",
}, {
	"sortname": "PR",
	"name": "Puerto Rico",
}, {
	"sortname": "QA",
	"name": "Qatar",
}, {
	"sortname": "RE",
	"name": "Reunion",
}, {
	"sortname": "RO",
	"name": "Romania",
}, {
	"sortname": "RU",
	"name": "Russia",
},

标签: flutter

解决方案


我是这样做的:

String countryCode = 'us';
String flag = countryCode.toUpperCase().replaceAllMapped(RegExp(r'[A-Z]'),
     (match) => String.fromCharCode(match.group(0).codeUnitAt(0) + 127397));
print(flag);
  1. .toUpperCase()使所有字符大写

    • 我们 → 美国
  2. RegExp(r'[A-Z]')使用正则表达式选择每个字符

  3. .replaceAllMapped()获取每个匹配的字符

    • ü
    • 小号
  4. .codeUnitAt(0)将每个字符转换为符文

    • 85
    • 83
  5. + 127397将每个符文转换为区域指示符号

127397 = 127462(的 HTML 代码)- 65(A 的符文值)。

  • 85 + 127397 = 127482
  • 83 + 127397 = 127480
  1. .fromCharCode()将区域指标符号的值转换为字符串(标志表情符号)


推荐阅读