Text Reference

Kaomoji

123 results

Happy

Sad

Angry

Surprised

Love

Confused

Shrug and dismissive

Sleepy and tired

Animals

Actions

Text faces

A static table · nothing is uploaded

Static reference · 123 faces, real text

123 Japanese emoticons in eleven groups: happy, sad, angry, surprised, love, confused, shrug and dismissive, sleepy, animals, actions and text faces. Tap one to copy it. Unlike Western emoticons they are read upright, so no head-tilting is required.

How to copy a kaomoji

1 Search by mood or name. "shrug", "table flip", "cat".
2 Tap the face to copy it. Every character in it comes along, including the invisible ones.
3 Paste it anywhere that takes text.

The difference from :-) is orientation. Western emoticons are read sideways because they were assembled from a keyboard with about ninety usable characters, so the mouth had to be a bracket turned on its side. Kaomoji are read upright, and they can be because Japanese input methods have always had a far larger character set to draw on. The eyes carry the expression instead of the mouth, which is why they read as more expressive with fewer strokes.

That larger character set is where the practical trouble starts. These 123 faces draw on 31 different Unicode blocks between them. Katakana and Japanese punctuation as you would expect, but also Bopomofo for the crying face (ㄒoㄒ), Kannada for the disapproving one (ಠ_ಠ), Canadian Aboriginal Syllabics for the kitten's ears, IPA phonetic letters for the bear (ʕ•ᴥ•ʔ), plus Thai, Georgian, Gujarati, Arabic, Cyrillic, Greek, box drawing and geometric shapes. The characters were picked for their shape and nothing else. If the font at the far end is missing any one of them, that part turns into a replacement box and the face collapses. Nothing is wrong with the text when this happens: it is font coverage, and it explains why one face survives a game chat and the next one does not.

The shrug has a trap of its own. ¯_(ツ)/¯ contains exactly one backslash, in the left arm, and anywhere backslash is an escape character (a shell, a JSON string, some chat clients that treat it as markdown escaping) it gets consumed and you are left with a one-armed shrug. Doubling it to ¯\(ツ)_/¯ fixes that in those places and breaks it everywhere else, so double it only where you have seen an arm go missing.

Eight of the faces are built with combining marks rather than ordinary letters, Lenny among them: his eyebrows are U+0361 and U+035C, characters designed to stretch across two letters at once. Fonts position those very differently, which is why Lenny looks right in one app and lopsided in the next. And the table flip mixes an ASCII opening bracket with a fullwidth closing one, so in a monospaced font the two sides genuinely are different widths. Both are how these faces are actually written, not a mistake in the table.

What people use it for

  • Getting the shrug without hunting down the katakana tsu
  • Finding a face for a chat that strips emoji but keeps text
  • Picking one by mood rather than from memory
  • Copying a table flip whole instead of reassembling it
  • Dropping one into a commit message or a terminal banner
  • Testing whether a font stack covers more than Latin characters

Questions

They are read upright rather than sideways, and the eyes carry the expression instead of the mouth. A Western emoticon needs your head tilted; a kaomoji does not.

The Unicode Standard, code chartsUnicode Blocks.txt, the block each character belongs toUnicode Emoji, UTS #51
Was this tool any good?
Internal signal only · I use it to find the tools worth rebuilding