claude-code - 💡(How to fix) Fix East Asian Ambiguous width characters (e.g. ⚪︎ U+26AA) rendered at half-width in input area

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Certain Unicode characters with East Asian Ambiguous width (e.g. ⚪︎ U+26AA) are displayed at half-width in the Claude Code input area, causing them to appear "squished" — as if the full-width glyph is being crammed into a half-width cell.

The terminal emulator (Ghostty) correctly renders these characters at full-width in normal shell output, but the Claude Code input area treats them as half-width, resulting in a mismatch between the rendered glyph and the allocated cell width.

Root Cause

Certain Unicode characters with East Asian Ambiguous width (e.g. ⚪︎ U+26AA) are displayed at half-width in the Claude Code input area, causing them to appear "squished" — as if the full-width glyph is being crammed into a half-width cell.

The terminal emulator (Ghostty) correctly renders these characters at full-width in normal shell output, but the Claude Code input area treats them as half-width, resulting in a mismatch between the rendered glyph and the allocated cell width.

RAW_BUFFERClick to expand / collapse

Description

Certain Unicode characters with East Asian Ambiguous width (e.g. ⚪︎ U+26AA) are displayed at half-width in the Claude Code input area, causing them to appear "squished" — as if the full-width glyph is being crammed into a half-width cell.

The terminal emulator (Ghostty) correctly renders these characters at full-width in normal shell output, but the Claude Code input area treats them as half-width, resulting in a mismatch between the rendered glyph and the allocated cell width.

Screenshot

<img width="122" height="60" alt="Image" src="https://github.com/user-attachments/assets/a98eb9bb-ab2b-4717-b7ff-1ca7a00c29ff" />

As shown above, the ⚪︎ character is squished into a half-width cell in the input area, with the cursor overlapping it.

Steps to Reproduce

  1. Open Claude Code in a terminal (tested with Ghostty on macOS)
  2. Type or paste a character like ⚪︎ (U+26AA) in the input area
  3. The character appears squished/truncated — only occupying a half-width cell while the glyph itself is full-width

Expected Behavior

The character should occupy a full-width (2-cell) space in the input area, matching how the terminal renders it.

Actual Behavior

The character is allocated only 1 cell width, causing the glyph to be cut off or overlapping.

Note: This only affects the input area. Characters in Claude Code's output are displayed correctly.

Environment

  • Claude Code v2.1.132
  • Terminal: Ghostty (macOS)
  • Font: MesloLGS Nerd Font Mono + Hiragino Kaku Gothic ProN (fallback)
  • OS: macOS (Darwin 24.6.0)
  • Locale: en_US.UTF-8

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING