Emoji

Regional Indicator

26 characters (U+1F1E6–U+1F1FF, 🇦–🇿) that combine in pairs to form country flag emoji based on ISO 3166-1 country codes. 🇺+🇸 = 🇺🇸.

· Updated

What is a Regional Indicator Symbol?

Regional Indicator Symbols are a set of 26 Unicode characters — one for each letter of the Latin alphabet — that, when combined in pairs, form emoji representations of national flags. They occupy the code point range U+1F1E6 (REGIONAL INDICATOR SYMBOL LETTER A) through U+1F1FF (REGIONAL INDICATOR SYMBOL LETTER Z).

A single regional indicator character has no defined appearance of its own — it is not meant to be displayed individually. When two regional indicator characters appear consecutively and their combined two-letter code matches an ISO 3166-1 alpha-2 country code, emoji-aware rendering engines display the corresponding national flag emoji.

For example: 🇺 (U+1F1FA) + 🇸 (U+1F1F8) = 🇺🇸 (United States flag), because "US" is the ISO 3166-1 alpha-2 code for the United States.

ISO 3166-1 Alpha-2 Codes

The flag display system is anchored to ISO 3166-1 alpha-2 — the international standard for two-letter country codes maintained by the International Organization for Standardization. Every internationally recognized country and many territories have a two-letter code. The Unicode emoji flag system supports all codes in this standard:

  • 🇯🇵 JP → Japan
  • 🇩🇪 DE → Germany
  • 🇧🇷 BR → Brazil
  • 🇰🇷 KR → South Korea
  • 🇨🇳 CN → China
  • 🇬🇧 GB → United Kingdom

Regional and subdivision flags (like the Scottish flag 🏴󠁧󠁢󠁳󠁣󠁴󠁿) are handled differently — via TAG SEQUENCES using characters U+E0020–U+E007E — not regional indicators.

Why Regional Indicators Instead of Separate Flag Code Points?

The design decision to encode flags as regional indicator pairs rather than individual code points was deliberate and politically motivated. Assigning a dedicated code point to a country flag would require Unicode to make sovereign recognition decisions — to decide which entities are countries and which are not. This would embroil the Unicode Consortium in geopolitical disputes.

By encoding flags as ISO 3166-1 pairs, Unicode delegates the political decision to ISO and to rendering platforms. If a platform does not want to display a particular flag, it can simply decline to render that two-letter sequence as a flag image without violating the Unicode Standard.

Platform Behavior Differences

Regional indicator pairs that do not correspond to a recognized or politically uncontroversial flag are handled inconsistently across platforms:

  • Some platforms (Apple, Google) display a generic "flag" icon with the two letters for unrecognized or sensitive codes
  • Microsoft Windows historically did not support flag emoji at all in its system emoji font, displaying the two regional indicator letters as text instead
  • Some platforms support certain contested flags (Taiwan 🇹🇼, Kosovo 🇽🇰) and not others

This makes flag emoji the most platform-variable category of emoji in terms of actual rendering.

String Processing

A regional indicator pair forms a single grapheme cluster — a user-perceived character. Pressing backspace on 🇺🇸 should delete both regional indicator characters as a unit, not just the trailing 🇸. Programming environments that process emoji strings need grapheme-cluster-aware string handling to correctly manage flag emoji.

In terms of Unicode properties: regional indicator characters have the Regional_Indicator property set to Yes. The Unicode grapheme cluster algorithm uses this property to pair consecutive regional indicators into a single cluster.

Quick Facts

Property Value
Code point range U+1F1E6 – U+1F1FF
Count 26 characters (A–Z)
Pairing standard ISO 3166-1 alpha-2 country codes
Visual form alone Undefined — not meant for individual display
Introduced Unicode 6.0, October 2010
Subdivision flags Separate TAG SEQUENCE system (U+E0020–U+E007F)
Grapheme cluster Two regional indicators = one cluster
Platform variation Highest of any emoji category

Related Terms

More in Emoji