Chinese, Japanese, Korean, emoji, box lines, prompt icons — checked one character at a time on a real phone.
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.
The places that most often go wrong, up close.
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.
| What | Characters | Result | Notes |
|---|---|---|---|
| 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.
Two things, better said than hidden.
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.
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.
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.
# 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