代码之家  ›  专栏  ›  技术社区  ›  Rudey Mike M.

如何将两个字母的国家代码转换为标志符号?

  •  9
  • Rudey Mike M.  · 技术社区  · 8 年前

    我有 ISO 3166-1 (alpha-2) 国家代码,是两个字母代码,例如“US”和“NL”。如何获得相应的 flag emoji ?

    编辑:我最好不要在国家代码和相应的表情符号之间使用显式映射。 It has been done in JavaScript

    2 回复  |  直到 8 年前
        1
  •  9
  •   M. Hamza Rajput    5 年前

    解决方案:

    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(); // 🇫🇷
    
        2
  •  2
  •   Daniel    8 年前

    XXXXXXXX跳过本节,其中包含我的原始答案XXXXXXXX

    您将需要生成一个交叉引用表或字典,允许您查找相应的表情符号。幸运的是,看起来你已经找到了一个很好的信息来源!

    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    你可以走了 here 查找每个字母的相应unicode符号的图表。基本上,您只需为每个字母使用区域指示器符号。例如,NZ将是U+1F1F3(N)+U+1f1f(Z)。如果有人支持这两个符号,那么这两个符号将被解释为新西兰标志。

    因为这些字母都是连续的,所以可以使用普通大写字母的偏移量来计算给定字母的适当代码。您可能已经在引用的代码库中看到了它:它是 127397 . 因此,“A”+127397是A的区域指标符号。