我有ISO 3166-1 (alpha-2)个国家/地区代码,这是两个字母的代码,例如" US"和" NL"。如何获得相应的flag emoji?
编辑:我希望不使用国家/地区代码及其相应的表情符号之间的显式映射。 It has been done in JavaScript但我不确定如何在C#中执行此操作。
答案 0 :(得分:2)
XXXXXXXX跳过本部分,其中包含我的原始答案XXXXXXXX
您需要生成一个交叉引用表或字典,以便您查找相应的表情符号。幸运的是,您似乎已经找到了所需信息的绝佳来源!
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
您可以here查找每个字母的相应unicode符号图表。基本上,您只需为每个字母使用区域指示符号。例如,NZ将是U + 1F1F3(N)+ U + 1F1FF(Z)。如果对该表情符号有支持,则这两个符号被解释为NZ标志。
因为这些字母都是连续的,所以您可以使用正常大写字母的偏移量来计算给定字母的相应代码。您可能已在引用的代码库中看到它:它是127397
。因此,' A' +127397是A的区域指标符号。
感谢今天教给我一些新的东西,祝你好运!
答案 1 :(得分:2)
解决方案:
public static string IsoCountryCodeToFlagEmoji(this string country)
{
return string.Concat(country.ToUpper().Select(x => char.ConvertFromUtf32(x + 0x1F1A5)));
}
string gb = "gb".IsoCountryCodeToFlagEmoji(); // ??
string fr = "fr".IsoCountryCodeToFlagEmoji(); // ??