如何知道每个iOS或Android版本支持哪些Unicode表情符号标志?

与其他Unicode字符甚至其他表情符号字符相比,Unicode的国旗Emojis是特殊的。

所有表情符号字符都在Unicode的“星体”平面中的BMP之外,这意味着Unicode代码点由“代理对”组成,这是两个JavaScript“字符”,因为当UCS-2是JS时,JS早于UTF-16正在使用。

但标志表情符号实际上需要两个代码点,因此有四个 JavaScript“字符”。

我不知道这在Unicode字符中是否是唯一的,甚至在表情符号中也是如此,但它肯定不常见。

这意味着正确渲染Unicode标志表情符号取决于操作系统对双码点字符/字形的意识,这两个字符/字形必须是字体呈现代码的一部分,而不仅仅是Unicode标准和字体定义。

构成标志表情符号的两个字符只是ISO国家/地区代码中两个字母的重新映射。 因此,不受支持的组合可能会导致出现空白标记,或者呈现两个基础特殊字母。

如果我的应用程序只想呈现不会回归到丑陋的标志,我怎么知道哪些标志,即。 哪个国家/地区代码可在应用运行的操作系统和操作系统版本上找到?

我可以以编程方式检查这个,还是使用每个新操作系统版本执行相应的操作系统发布列表? 在Android的情况下,它甚至可能是主要的手机制造商支持比他们的基础Android版本更多的旗帜。