‹ Guides

Text and emoji

Chinese, Japanese, Korean, emoji, box lines, prompt icons — checked one character at a time on a real phone.

1 314
characters checked
18
kinds of text and symbols
9
screens
What we checked

A terminal is not like an ordinary text box: it places every character into its own fixed-width slot. A Chinese character takes two slots, a letter takes one, and an emoji is sometimes several pieces that have to join into a single picture — a family emoji is four people and some glue. Get any of that wrong and the screen drifts, overlaps, or shows an empty box.

So we did not spot-check a few characters. We laid 1,314 different characters out over 9 screens, connected to a real server with Term, and ran the whole thing on a phone in one go, photographing every screen. That run is what you see below.

Nine terminal screens looping: letters, symbols, box lines, Chinese, Japanese and Korean, emoji, joined emoji, a long scroll of Chinese, and edge cases.
All nine screens of a single run, looping in order.
What it looks like

The places that most often go wrong, up close.

Terminal screenshot: thumbs-up in several skin tones, family and job emoji, flags and number keys, each shown as one complete picture.
Emoji built from pieces have to end up as one picture. Each skin tone is a single complete thumbs-up; a family is one family, not four people standing in a row. The last row is four people written separately on purpose — that one is meant to be four.
Terminal screenshot: rows of emoji above rows of plain text, with the dividing bars landing in exactly the same columns.
Emoji stay out of their neighbours’ space. Under each row of emoji is a row of plain text, and the dividing bars land in the same columns — so each emoji is sitting inside its own slot rather than spilling over.
Terminal screenshot: a tidy grid of the 240 most-used Chinese characters, and a mixed Chinese/English alignment check.
The 240 most-used Chinese characters, evenly spaced in a grid. The last line mixes Chinese and English: each Chinese character takes two slots and the English between them does not drift.
Terminal screenshot: box lines, blocks, four shades of grey, braille dots and prompt icons.
Lines have to meet. Tools like htop, tmux and vim build their interfaces out of these, and a corner that does not quite join shows up as a gap. Term draws them itself, so they meet exactly — in every font.
The full list

Everything the check covered, and how each came out. The Chinese portion is the characters people actually use most — ranked by how often they appear in Term’s own Chinese interface — plus a sample spread across the rarer ranges.

WhatCharactersResultNotes
Chinese — everyday characters 503 good Two slots wide, and stays lined up with English
Box lines and frames 128 good Drawn by Term itself, so it looks identical in every font
Braille dots 64 good Crisp dots — used by spinners and progress meters
Cyrillic 64 good Right shapes, right spacing
Greek 57 good Right shapes, right spacing
Emoji 49 good In colour, two slots wide, never crowding its neighbour
Japanese kana 34 good Right shapes, right spacing
Blocks and progress bars 32 good Drawn by Term itself, so it looks identical in every font
Full-width letters and numbers 26 good Two slots wide, as they should be
Arrows, ticks and symbols 22 good Including the marks AI tools like Claude Code draw
Korean 16 good Right shapes, right spacing
Chinese — less common 16 good Right shapes, right spacing
Chinese and Japanese punctuation 15 good Right shapes, right spacing
Arabic and Hebrew 12 good Correct letter shapes and joins
Prompt icons (Nerd Fonts) 7 good The icons a powerline-style prompt uses
Accents and marks 6 good Joined onto the letter, sharing one slot
Plain and colour versions of a symbol 2 good Both the plain and the colour version
Very rare Chinese characters 5 see below No font we can reach has a design for these

1,314 characters · 18 kinds · 9 screens, all from the same run.

What we have not solved

Two things, better said than hidden.

Very rare Chinese characters show as blank

There is a set of extremely rare characters — mostly from classical texts and unusual personal names — that no font on the device has ever drawn. They appear as a blank or a box. The position is still correct: the cursor and line breaks behave normally, there is simply no design to show. This is not something Term can fix alone; it needs a font on the device that covers them.

Arabic and Hebrew are not flipped right-to-left

The letter shapes and joins are correct, but a terminal fills its slots in the order the program sends them and does not reverse a whole line. Every terminal works this way — whether to reverse it is up to the program running on the server.

Try it on your own server

The script behind this check is a download away. It needs Python 3 and nothing else — put it on a host of your own and see how it looks with the font and colours you actually use.

unimatrix.py Download
# copy it over and run the whole thing
scp unimatrix.py cjk_top.txt you@host:~/
python3 ~/unimatrix.py

# or just one screen (here, the joined emoji)
python3 ~/unimatrix.py 7

References: the character list