Unicode symbols render as hex codepoints on Linux without fonts-symbola
Resolved 💬 5 comments Opened Feb 8, 2026 by jezweb Closed Mar 8, 2026
Description
Claude Code uses Unicode characters like ⏵ (U+23F5, Black Medium Right-Pointing Triangle) in the terminal UI (e.g. "⏵⏵ accept edits on"). On Linux systems without comprehensive Unicode font coverage, these render as hex codepoint boxes (e.g. a rectangle containing "23F5") instead of the intended symbols.
Environment
- OS: Ubuntu (minimal/default font packages)
- Terminal: Default terminal emulator
- Claude Code: Latest version
Steps to Reproduce
- Install Claude Code on Ubuntu (default packages, no extra fonts installed)
- Run Claude Code
- Observe UI elements like "⏵⏵ accept edits on" — the triangles render as hex boxes
Expected Behaviour
Symbols should render correctly or fall back to ASCII equivalents.
Workaround
Installing fonts-symbola fixes the rendering:
sudo apt install fonts-symbola
(fonts-noto-core and fonts-noto-extra alone were NOT sufficient — fonts-symbola was required.)
Suggested Fix
Two options:
- ASCII fallback — Detect terminal Unicode rendering capability and fall back to ASCII equivalents like
>>or▸▸. Many CLI tools (npm, yarn, oh-my-zsh) do this.
- Use safer Unicode range — Characters like
▶(U+25B6) or›(U+203A) from the Basic Multilingual Plane have much wider font coverage than⏵(U+23F5) which is in the "Miscellaneous Technical" block that many monospace fonts skip.
Notes
- Windows Terminal renders these fine (Segoe UI Emoji / Cascadia Code cover most blocks)
- macOS renders fine (SF Mono + Apple symbol fonts)
- Linux Mint renders fine (ships with broader font packages)
- Ubuntu Desktop may also be fine depending on install — it's mainly minimal/server installs or custom setups that are affected
This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗