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

  1. Install Claude Code on Ubuntu (default packages, no extra fonts installed)
  2. Run Claude Code
  3. 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:

  1. 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.
  1. 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

View original on GitHub ↗

This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗