Ctify_ v26.7.10
Flags!!!
This World Cup season sparks back my long-time interest to world flags.
I really love the very concept of flags. They are so colorful, and it makes information visualization quicker, for some specialized context.
In wikipedia, there’s so many effort to bring world flags to their platform. Upload the flag to the wikimedia commons, then summon the flag by using this lua module/template script. It’s quite complex, but the final result is nice and it’s all worth it in the end.
I want this ctify_ also has such nice-to-have functionality as well. But, copying such method is really tedious.
Thank god, we have emoji flag embedded as a font.
I simply include the css import, then include the emoji font as a “backup font”, one level behind the main font that i use here.. So, whenever there’s a unicode flag codepoint appeared, the emoji font will be used instead of the main font, because main font can’t provide such flag emoji.
Out of curiosity, I asked ChatGPT about this flags and emojis..
When emoji were first created in Japan in the late 1990s, they were just small pictograms used by Japanese mobile phone companies. Different companies had different emoji sets, and they were incompatible with one another.
As smartphones became global, the major technology companies, especially Apple and Google, wanted everyone to use the same emoji. Around 2007–2010, they proposed encoding emoji into the Unicode Standard, which is maintained by the Unicode Consortium. The Unicode Consortium is a nonprofit organization whose members include companies such as Apple, Google, Microsoft, Meta, Adobe, IBM, and many others. Their job is to assign code points to characters so that computers around the world interpret text consistently.
When it came to flags, however, they faced a political problem.
If Unicode had to decide : Is Taiwan a country? Is Kosovo a country?
Is Palestine a country? Is Western Sahara a country? then every Unicode meeting would become a geopolitical debate.
So they deliberately avoided making those decisions. Instead, they reused an existing international standard called ISO 3166-1. This standard, maintained by the International Organization for Standardization (ISO), assigns every recognized territory a two-letter code.
Unicode already had symbols called Regional Indicator Symbols. Each letter A through Z has its own code point. A flag is simply two Regional Indicator Symbols placed together.
This design has an enormous advantage. Suppose a country changes its flag. Take Libya as an example. From 1977 to 2011, Libya’s flag was simply a solid green rectangle. After the fall of Muammar Gaddafi, Libya restored its older red-black-green flag. Unicode did nothing. The operating system simply updated the artwork associated with “LY.”
What happens if a new country appears? Suppose tomorrow a newly independent country receives an ISO 3166-1 alpha-2 code. Unicode does not need to invent anything. Since every letter A–Z already exists as a Regional Indicator Symbol, any new two-letter code can immediately represent a flag. Only the operating systems need to add artwork for that code.
What about disputed territories? This is where ISO’s policy becomes important.
Unicode generally follows ISO 3166-1, not the United Nations directly. As a result, some entries represent sovereign states, while others represent territories. For example : 🇭🇰 Hong Kong. 🇲🇴 Macau
🇦🇨 Ascension Island. 🇨🇵 Clipperton Island. These appear because they have appropriate ISO codes, even though they are not independent countries.
There are also “subdivision flags,” such as : England, Scotland, and Wales. These are not encoded using Regional Indicator Symbols. Instead, they use a completely different mechanism called tag sequences, because England’s ISO code (”GB-ENG”) is longer than two letters. This system was added later specifically for a few widely requested subdivisions.
ISO 3166-1 does not actually decide what a country is.
Much like Unicode avoided making geopolitical decisions, ISO also tries very hard to avoid being the organization that recognizes states.
Instead, ISO 3166-1 largely relies on two external sources: The United Nations Terminology Bulletin Country Names. The UN Statistics Division’s country and area lists.
Kosovo is a famous example. Kosovo declared independence from Serbia in 2008. More than 100 UN member states recognize Kosovo. Others do not. As a result, Kosovo does not currently have a normal ISO 3166-1 alpha-2 code. Instead, many international organizations use : XK as an unofficial code.
What happens if a country disappears? History provides several examples. When Czechoslovakia split in 1993: CS was retired. New codes were assigned: CZ Czech Republic. SK Slovakia. ISO maintains records of these historical changes through related standards such as ISO 3166-3.





