Emoji, kaomoji and symbols all end up in the same bios and they behave nothing alike. One is a set of picture characters that render differently on every platform. One is a drawing assembled from ordinary punctuation. One is a grab bag of characters encoded for typesetting, mathematics and cartography that people repurposed as decoration. The differences decide which survives a paste, which costs you characters, and which will look the same to the person reading it.
Unicode encodes the concept, not the picture. There is a code point meaning grinning face, and Apple, Google, Microsoft, Samsung and every other vendor draws it their own way.
So an emoji you choose because of how it looks on your phone is not what your reader sees. The differences are sometimes cosmetic and sometimes substantial enough to change the meaning, which has caused enough confusion over the years that vendors have redrawn specific emoji to bring them closer together.
The practical consequence: pick emoji for what they denote rather than for a subtlety in how your device draws them. A tear on one platform is a bead of sweat on another.
The emoji translator maps words to the emoji that denote them, which is a more reliable basis for choosing than browsing a grid.
Emoji sit above U+FFFF, so each is stored as a surrogate pair, two units where a plain letter takes one.
Many cost considerably more. An emoji with a skin tone modifier is two code points. A profession is a base emoji, a zero-width joiner and a second emoji. A family can run to seven code points. A flag is two regional indicator characters.
So a bio with six emoji in it can be carrying thirty storage units of decoration. Against a 101-character Facebook bio or a 139-character WhatsApp About, that is a substantial part of the budget spent on pictures.
The character counter reports storage units alongside characters, which is the number that matters here. A single family emoji can cost more than a short word.
A flag emoji is not one character. It is two regional indicator symbols, one for each letter of a country code, which the renderer combines into a flag if it recognises the pair.
If it does not recognise the pair, or if the platform has chosen not to display flags, you get two letters in boxes instead. Some platforms deliberately do not render certain flags, which means your text arrives differently depending on where it is read and on local policy rather than on any technical limit.
Splitting a string between the two indicators produces two unrelated letter symbols, which is a real hazard for any operation that works character by character. Tools on this site that insert a separator between letters treat the pair as one unit for that reason.
The random flag generator produces valid pairs, and what renders from them still depends on the reader's platform.
A kaomoji is a face assembled from punctuation and letters, read upright rather than sideways. The Japanese style uses characters drawn from several scripts, which is why they can express more than the Western sideways smiley.
Because they are built from ordinary characters, they behave like text in every respect. Each character costs what that character costs. Most of them are in the Basic Multilingual Plane, so a kaomoji is often cheaper in storage than a single emoji despite being much longer on screen.
They also render identically everywhere, because there is no vendor artwork involved. What you compose is what your reader sees, which is the opposite of the emoji situation.
The risk is different: a kaomoji using characters from a script the reader's device lacks will show boxes in the middle of the face, which is worse than a missing emoji because the shape falls apart.
The decorative symbols people use as bullets and dividers were encoded for entirely unrelated reasons.
Stars and asterisk variants come mostly from Dingbats and from the typographic blocks, encoded because printers had them. Arrows come from the Arrows block, added for mathematics and for interface documentation. The box-drawing characters used for dividers come from a block encoded for terminal interfaces, where they drew borders in text mode.
That history explains coverage. Characters from blocks that predate Unicode, inherited from older character sets, are supported almost everywhere. Characters added later for niche purposes are not.
The cool symbols generator collects the ones in common use, and the older and plainer a symbol looks, the likelier it is to render on an unfamiliar device.
Emoji are announced by name, which is the best outcome of the three because the name usually conveys the meaning. The problem is quantity: six emoji in a line are six interruptions, and a decorative row of twelve is announced twelve times.
Symbols are announced by name too, and the names are less helpful. A box-drawing character used as a divider is announced as whatever its formal name is, in the middle of your sentence, with no indication that a visual break was intended.
Kaomoji are the worst, because they are made of punctuation and a reader will either announce every mark or skip them all. A face built from a dozen characters becomes a dozen punctuation names or silence.
One emoji per line carries meaning. A row of decorative symbols costs a listener more than it gives them.
The most common job these characters do in a bio is structural: separating lines, marking list items, dividing sections.
That works visually and it is worth doing deliberately. One symbol type used consistently reads as design. Four different ones read as clutter.
A divider made from a repeated character is cheap and predictable, and the text repeater will build one at whatever length you need. A bullet at the start of each line is cheaper still at one character, and text to bullet points will apply one to a block.
The cost to watch is the line break, which is a character too. A four-line bio has spent three characters on structure before any words appear, which matters at 101 or 139 characters and not at 2,200.
Emoji work where the field is generous and the meaning is carried by the picture rather than by a subtlety of how it is drawn. A caption, a message, a post. Use few.
Kaomoji work where the field is generous and the reader's device is likely to be modern. They are long on screen and cheap in storage, which is the reverse of emoji.
Symbols work as structure in tight fields, because most cost one storage unit and one character, and the older ones render nearly everywhere.
None of them works in a username or handle field, which restricts you to ASCII letters, digits and a separator regardless of what you are trying to insert.
The check is the same one that applies to every styled character: your device is not the reader's device.
Look at the text on a second platform if you can. An iPhone and an Android phone between them cover most of the difference in emoji artwork, and an older Android build will tell you about missing glyphs.
Count the storage units rather than the characters, because emoji are where the two numbers diverge most sharply.
And read the line as though the pictures were absent. If the sentence still makes sense without them, the emoji are decoration and a missing one costs nothing. If it does not, you have put meaning into a character that renders differently for everyone, which is the case worth avoiding.
Several emoji carry modifiers that are separate characters appended to a base, and they are invisible in the sense that you never chose them explicitly.
A skin tone is one of five modifier characters added after the base emoji. Picking a tone from a keyboard picker sends two code points where you thought you sent one.
A variation selector is another. Some symbols have both a plain text form and an emoji form, and which you get depends on a zero-width character appended after them. That is why the same symbol can render as a flat black glyph in one place and as a colour emoji in another: the selector was present in one copy and stripped in the other.
The zero-width joiner is the third, used to bind several emoji into one, as in a profession or a family.
All three are real characters that count against a field limit and can be separated by any operation that works one code point at a time. If an emoji has ever arrived as two unrelated pictures, this is what happened to it.
Unicode encodes the concept and each vendor draws its own artwork, so the same code point is a different picture on Apple, Google, Microsoft and Samsung devices.
At least two storage units, and often more. A skin tone modifier, a profession or a family is built from several code points joined together, and a flag is two regional indicators.
Usually, in storage. They are built from ordinary characters mostly below U+FFFF, so each costs one unit, though they are much longer on screen.