Useful Unicode Characters
Unicode is the standard with the goal to represent all non-fictional characters (aka non-constructed scripts) in use by humans. This article describes some useful Unicode characters called Code Points. This includes a few Emojis as well. They will be especially useful when you're an author of blog articles, books, or frequent user of Slack.
- Author:
- Christian Hujer, CEO / CTO Nelkinda Software Craft Private Limited
- First Published:
- by Nelkinda Software Craft Private Limited
- Last Modified:
- by Christian Hujer
The correct display of information on this page depends heavily on the browser and operating system. See chapter Browsers for more information.
1 What is Unicode?
The Unicode is an international standard that assigns numbers to characters (symbols) for processing text and scripts with computers.
2 Entering Unicode
There are many ways how to enter Unicode characters. Depending on the operating system and program, you can enter Unicode characters by number or with a tool.
In some tools it makes a difference whether a Unicode character is in the BMP, that is the first 65536 Unicode code points, or another plane. There are three types of tools:
- Tools which accept any number from any plane without difference, such as GTK.
- Tools which accept any number from any plane, but have different shortcuts for the BMP and other planes, such as Vim.
- Tools which accept only input from the BMP, and thus need a surrogate pair to enter code points from other planes, such as IdeaVim and Mac OS.
2.1 In Vim
BMP / 16 Bit: Ctrl+V,U followed by the 4 hexadecimal digits of the Unicode code point.
Other planes / 32 Bit: Ctrl+V,Shift+U followed by the 8 hexadecimal digits of the Unicode code point.
For example: To enter the bullet character 'โข' in Vim, press Ctrl+V U 2 0 2 2. To enter the keyboard and mouse symbol '๐ฆ' in Vim, press Ctrl+V Shift+U 0 0 0 1 F 5 A 6.
2.2 In IdeaVim
BMP / 16 Bit: Ctrl+V,U followed by the 4 hexadecimal digits of the Unicode code point.
Other planes / 32 Bit: IdeaVim currently does not natively support entering 32 Bit Unicode characters. The shortcut Ctrl+V,Shift+U is accepted and expects 8 hexadecimal digits, but only the last four digits have an effect. It is still possible to enter Unicode characters from the supplementary planes in IdeaVim. For that, one has to convert the code point into a surrogate pair. For example, to enter the keyboard and mouse symbol '๐ฆ' (codepoint 0x1F5A6
) in IdeaVim, type Ctrl+V U D 8 3 D Ctrl+V U D D A 6.
2.3 In GTK
All codepoints: Ctrl+Shift+U followed by the hexadecimal digits followed by space.
For example: To enter the bullet character in X11, press Ctrl+Shift+U 2 0 2 2 SPACE. To enter the keyboard and mouse symbol in X11, press Ctrl+Shift+U 1 F 5 A 6.
2.4 Plain X11 / KDE / Non-GTK
I'm afraid that plain X11, KDE and other non-GTK applications do not have good support for Unicode input.
2.5 In Windows
Some Windows applications support entering Unicode by typing the hexadecimal code point number followed by Alt+X. For example, to enter the keyboard and mouse symbol '๐ฆ' (codepoint 0x1F5A6
) in WordPad, type 1 F 5 A 6 Alt+X. Note that this doesn't work in all Windows applications. It works, for example, in Outlook, Word, and WordPad. And it doesn't work, for example, in Chrome, cmd.exe
, Excel, File Explorer, or Teams.
3 List of Useful Unicode Code Points
Symbol | Name | Number (s) | Description | |
---|---|---|---|---|
hex | dec | |||
โข | bullet | 2022 | 8226 | nicer bullet points than asterisk where proper lists are not available |
โฆ | white bullet | 25e6 | 9702 | nicer second level bullet points than asterisk where proper lists are not available |
โฆ | horizontal ellipsis | 2026 | 8230 | for omissions in quotes and continuation |
โฎ | vertical ellipsis | 22ee | 8942 | for vertical omission; menu icon |
โฐ | trigram for heaven | 2630 | 9776 | menu icon |
โ | figure dash | 2012 | 8210 | for use with digits when a dash is needed that's neither a minus nor a range. for example in phone numbers like +91โ77โ12345678 |
โ | en dash | 2013 | 8211 | for ranges |
โ | em dash | 2014 | 8212 | separation of thoughts |
โ | horizontal bar | 2015 | 8213 | attribution of source |
โ | ballot box | 2610 | 9744 | to-do lists |
โ | ballot box with check | 2611 | 9745 | |
โ | ballot box with x | 2612 | 9746 | |
โ | circled plus | 2295 | 8853 | evaluation lists |
โ | circled ring | 229a | 8858 | |
โ | circled minus | 2296 | 8854 | |
ยฉ | copyright | 00a9 | 169 | legal symbols |
ยฎ | registered trademark | 00ae | 174 | |
โข | unregistered trademark | 2122 | 8482 | |
โฟ | bitcoin sign | 20bf | 8383 | currencies |
$ | dollar sign | 24 | 36 | |
โฌ | euro sign | 20ac | 8364 | |
โน | Indian rupee sign | 20b9 | 8377 | |
ยฃ | pound sign | a3 | 163 | |
ยฅ | yen sign yuan sign | a5 | 165 | |
โ | rightwards double arrow | 21d2 | 8658 | material implication, conclusion |
ร | multiplication sign | d7 | 215 | Maths |
รท | division sign | f7 | 247 | |
โ | infinity symbol (lemniscate) | 221e | 8734 | |
โ | warning sign | 26a0 | 9888 | Illustration |
๐ | folder | 1F5C0 | 128448 | Directory symbols |
๐ | open folder | 1F5C1 | 128449 | |
๐ | document | 1F5CE | 128462 | |
๐ง | 1F4E7 | 128231 | communication | |
โ | telephone symbol | 260e | 9742 | |
โ | telephone symbol | 260f | 9743 | |
โ | telephone symbol | 2706 | 9990 | |
โ | letter symbol | 2709 | 9993 | |
โ | phone | 260f | 9743 | |
โ | phone | 2706 | 9990 | |
๐จ๐ฆ | Canada | 1F1E8 1F1E6 | 127464 127462 | Country and Region Flags |
๐ช๐บ | Europe | 1F1EA 1F1FA | 127466 127482 | |
๐ฉ๐ช | Germany | 1F1E9 1F1EA | 127465 127466 | |
๐ฌ๐ง | Great Britain | 1F1EC 1F1E7 | 127468 127463 | |
๐ฎ๐ณ | India | 1F1EE 1F1F3 | 127470 127475 | |
๐ฐ๐ช | Kenya | 1F1F0 1F1EA | 127472 127466 | |
๐ณ๐ต | Nepal | 1F1F3 1F1F5 | 127475 127477 | |
๐ช๐ธ | Spain | 1F1EA 1F1F8 | 127466 127480 | |
๐บ๐ฌ | Uganda | 1F1FA 1F1FC | 127482 127468 | |
๐บ๐ธ | USA | 1F1FA 1F1F8 | 127482 127480 | |
๐ด๓ ง๓ ข๓ ณ๓ ฃ๓ ด๓ ฟ | Scotland | 1F3F4 E0067 E0062 E0073 E0063 E0074 E007F | 127988 917607 917602 917619 917603 917620 917631 | |
๐ด๓ ค๓ ฅ๓ ข๓ ก๓ น๓ ฟ | Bavaria | 1F3F4 E0064 E0065 E0062 E0079 E007F | 127988 917604 917605 917602 917625 917631 | |
๐ดโโ ๏ธ | Pirate Flag | 1F3F4 200D 2620 FE0F | 127988 8205 9760 65039 | Miscellaneous Flags |
๐ณโ๐๏ธ | Rainbow Flag | 1F3F3 200D 1F308 FE0F | 127987 8205 127752 65039 | |
๐ง | Penguin | 1F427 | 128039 | For Linux and animal lovers |
๐ช | Diya | 1FA94 | 129684 | Diya lamp, for example for Diwali |
๐ | Christmas Tree | 1F384 | 127876 | Tree with lights, for example for Yule (Christmas) |
๐ง | Zombie | 1F9DF | 129503 | Zombie |
๐งโโ๏ธ | Zombie Male | 1F9DF 200D 2642 FE0F | 129503 8205 9794 65039 | Male Zombie |
๐งโโ๏ธ | Zombie Female | 1F9DF 200D 2640 FE0F | 129503 8205 9792 65039 | Female Zombie |
๐ง | Mage | 1F9D9 | 129497 | Wizard |
๐งโโ๏ธ | Sorcerer | 1F9D9 200D 2642 FE0F | 129497 8205 9794 65039 | Male Wizard |
๐งโโ๏ธ | Sorceress | 1F9D9 200D 2640 FE0F | 129497 8205 9792 65039 | Female Wizard |
โ | Black Star | 2605 | 9733 | Star Ranking |
โ | White Star | 2606 | 9734 | |
โญ | White Medium Star | 2B50 | 11088 | |
โญ | Black Small Star | 2B51 | 11089 | |
โญ | White Small Star | 2B52 | 11090 | |
โช | Medium White Circle | 26AA | 9898 | Circles |
โซ | Medium Black Circle | 26AB | 9899 | |
๐ด | Large Red Circle | 1F534 | 128308 | |
๐ต | Large Blue Circle | 1F535 | 128309 | |
๐ | Large Orange Circle | 1F7E0 | 128992 | |
๐ก | Large Yellow Circle | 1F7E1 | 128993 | |
๐ข | Large Green Circle | 1F7E2 | 128994 | |
๐ฃ | Large Purple Circle | 1F7E3 | 128995 | |
๐ค | Large Brown Circle | 1F7E4 | 128996 | |
โฌ | White Large Square | 2B1C | 11036 | Squares |
โฌ | Black Large Square | 2B1B | 11035 | |
๐ฅ | Large Red Square | 1F7E5 | 128997 | |
๐ฆ | Large Blue Square | 1F7E6 | 128998 | |
๐ง | Large Orange Square | 1F7E7 | 128999 | |
๐จ | Large Yellow Square | 1F7E8 | 129000 | |
๐ฉ | Large Green Square | 1F7E9 | 129001 | |
๐ช | Large Purple Square | 1F7EA | 129002 | |
๐ซ | Large Brown Square | 1F7EB | 129003 |
4 Rating
One of the things you can do with plain Unicode stars is to create a rating.
This can also be used in tools like Google Sheets. For example, in a product comparison, one might want to have a column "First Impression" and use a star rating there.
Of course, you may want to go for something more complex in a proper product rating on a website. This can still be useful for stubbing and mockups.
5 Choosing between Text Mode and Emoji Mode
When entering Unicode characters that represent emojis, it is possible to control whether a normal character or an emoji shall be shown. In the Unicode, this is called Variant Selector. The code points FE0E
and FE0F
can be used after a character to select between text and emoji. If neither of them is present, the software is free to decide.
Variant | Code point | |
---|---|---|
Hex | Decimal | |
Text | FE0E | 65038 |
Emoji | FE0F | 65039 |
For example, when entering 2611
in Slack, the default behavior of Slack is to replace it with an emoji. When entering 2611
followed by FE0E
, the character is selected explicitly, and Slack will no longer replace it with an emoji.
Emoji | Text | Emoji |
---|---|---|
Mode | ||
Ballot box | โ๏ธ | โ๏ธ |
๐ง๏ธ | ๐ง๏ธ | |
Penguin | ๐ง๏ธ | ๐ง๏ธ |
White Medium Star | ๐ญ๏ธ | โญ๏ธ |
Whether software respects the choice can also be influenced by the availability of corresponding fonts, and their correctness.
6 Emoji Gender
Some emojis represent humans, humanoids, or even animals, and exist in forms with multiple genders. Some of these emojis exist via separate code points, which the specification calls explicit gender appearance. For others, it is possible to select the gender by marking the gender using a zero width joiner 200D
with an explicit gender marker. The gender markers are based on the astronomical symbols for the planets Venus (female) and Mars (male).
Gender | Marker | ||
---|---|---|---|
Symbol | Hex | Decimal | |
Female | โ๏ธ | 2640 FE0F | 9792 65039 |
Male | โ๏ธ | 2642 FE0F | 9794 65039 |
The Emoji mode variant selector is important. Without it, some applications might not display the modified emoji, but instead display the gender symbol separately.
Base Symbol | Male | Female | |||||
---|---|---|---|---|---|---|---|
Symbol | Name | Symbol | Hex | Decimal | Symbol | Hex | Decimal |
๐ง | Zombie | ๐งโโ๏ธ | 1F9DF 200D 2642 FE0F | 129503 8205 9794 65039 | ๐งโโ๏ธ | 1F9DF 200D 2640 FE0F | 129503 8205 9792 65039 |
๐ง | Mage | ๐งโโ๏ธ | 1F9D9 200D 2642 FE0F | 129497 8205 9794 65039 | ๐งโโ๏ธ | 1F9D9 200D 2640 FE0F | 129497 8205 9792 65039 |
7 Emoji Diversity
Emojis which represent humans or human body parts like hands or heads often have a skin color. To represent diversity, emojis can be modified with a skin tone modifier. The skin tone modifier is based on the Fitzpatrick Scale, with the skin types I and II on the Fitzpatrick scale clubbed together.
Fitzpatrick Scale | Type-1-2 | Type-3 | Type-4 | Type-5 | Type-6 | |
---|---|---|---|---|---|---|
Number | Hex | 1F3FB | 1F3FC | 1F3FD | 1F3FE | 1F3FF |
Dec | 127995 | 127996 | 127997 | 127998 | 127999 | |
Emoji | ๐ป | ๐ผ | ๐ฝ | ๐พ | ๐ฟ |
Together with the option of not specifying the skin type, this gives a total of 6 options for specifying the skin type. The skin type modifier is simply used after the emoji of which the skin type is to be modified.
Skin type | Emoji | Number | |
---|---|---|---|
Hex | Dec | ||
without | ๐ | 1F44B | 128075 |
Type-1-2 | ๐๐ป | 1F44B 1F3FB | 128075 127995 |
Type-3 | ๐๐ผ | 1F44B 1F3FC | 128075 127996 |
Type-4 | ๐๐ฝ | 1F44B 1F3FD | 128075 127997 |
Type-5 | ๐๐พ | 1F44B 1F3FE | 128075 127998 |
Type-6 | ๐๐ฟ | 1F44B 1F3FF | 128075 127999 |
8 Combining Gender and Diversity
Of course the modifiers for gender and diversity can be combined.
Skin Tone | Gender | |||
---|---|---|---|---|
Unspecified | Male | Female | ||
Unspecified | ๐ง | ๐งโโ๏ธ | ๐งโโ๏ธ | |
Type-1-2 | ๐ป | ๐ง๐ป | ๐ง๐ปโโ๏ธ | ๐ง๐ปโโ๏ธ |
Type-3 | ๐ผ | ๐ง๐ผ | ๐ง๐ผโโ๏ธ | ๐ง๐ผโโ๏ธ |
Type-4 | ๐ฝ | ๐ง๐ฝ | ๐ง๐ฝโโ๏ธ | ๐ง๐ฝโโ๏ธ |
Type-5 | ๐พ | ๐ง๐พ | ๐ง๐พโโ๏ธ | ๐ง๐พโโ๏ธ |
Type-6 | ๐ฟ | ๐ง๐ฟ | ๐ง๐ฟโโ๏ธ | ๐ง๐ฟโโ๏ธ |
9 Emoji Flags
9.1 Country Flags
Country flags are a bit special in the Unicode, in multiple ways. First, Unicode doesn't specify flags as such, just a mechanism how to specify flags. Second, flags need two code points instead of one.
Flags are represented by two flag letters. The combination of the two flag letters represents the ISO 3166-1 alpha-2 two-letter country code.
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
U+1F1Ex | ๐ฆ | ๐ง | ๐จ | ๐ฉ | ๐ช | ๐ซ | ๐ฌ | ๐ญ | ๐ฎ | ๐ฏ | ||||||
U+1F1Fx | ๐ฐ | ๐ฑ | ๐ฒ | ๐ณ | ๐ด | ๐ต | ๐ถ | ๐ท | ๐ธ | ๐น | ๐บ | ๐ป | ๐ผ | ๐ฝ | ๐พ | ๐ฟ |
For example, the two-letter country code for Germany is DE. So, the flag for Germany is represented by ๐ฉ (1F1E9) followed by ๐ช (1F1EA): ๐ฉ๐ช (1F1E9 1F1EA).
Country | Emoji | Codepoints | |||
---|---|---|---|---|---|
Name | Code | Separate | Combined | Hex | Dec |
Europe | EU | ๐ช ๐บ | ๐ช๐บ | 1F1EA 1F1FA | 127466 127482 |
Germany | DE | ๐ฉ ๐ช | ๐ฉ๐ช | 1F1E9 1F1EA | 127465 127466 |
India | IN | ๐ฎ ๐ณ | ๐ฎ๐ณ | 1F1EE 1F1F3 | 127470 127475 |
9.2 Region Flags
Regional flags work different from country flags, and they are mostly unsupported (yet?). Regional flags work by taking the black flag ๐ด (1F3F4) and tagging it with the region, without the dash, and all lowercase. The tag sequence must be correctly closed (canceled with E007F cancel tag). The tags for that are in Unicode code page [UnicodeE0000].
Region | Emoji | Codepoints | ||
---|---|---|---|---|
Name | Code | Hex | Dec | |
Bavaria | DE-BY | ๐ด๓ ค๓ ฅ๓ ข๓ ธ๓ ฟ | 1F3F4 E0064 E0065 E0062 E0079 E007F | 127988 917604 917605 917602 917625 917631 |
Scotland | GB-SCT | ๐ด๓ ง๓ ข๓ ณ๓ ฃ๓ ด๓ ฟ | 1F3F4 E0067 E0062 E0073 E0063 E0074 E007F | 127988 917607 917602 917619 917603 917620 917631 |
9.3 Combined Flags
It is also possible to create flags by combining the white or black flag with the symbol of choice using the zero-width joiner 200D. This is not very widely supported, except for the pirate flag and the rainbow flag.
Flag | Codepoints | ||
---|---|---|---|
Name | Emoji | Hex | Dec |
Pirate Flag | ๐ดโโ ๏ธ | 1F3F4 200D 2620 FE0F | 127988 8205 9760 65039 |
Rainbow Flag | ๐ณ๏ธโ๐๏ธ | 1F3F3 FE0F 200D 1F308 FE0F | 127987 65039 8205 127752 65039 |
10 Browsers
As noted in the info box at the beginning of this article, the correct display depends on a couple of things. Most notably, it depends on the presence of emoji-fonts and how up-to-date these fonts are.
- On some flavors of Ubuntu, like for example Kubuntu, the package
fonts-noto-color-emoji
has to be installed to get emoji support in some browsers and other software.