[Bug] Unicode characters render as mojibake on Windows terminals

Resolved 💬 15 comments Opened Mar 14, 2026 by seira04220325-byte Closed Apr 28, 2026

Bug Description
---
Title: Unicode characters in UI rendering are garbled (mojibake) on Windows terminals

Description:

Claude Code's terminal UI elements (progress bars, spinners,
box-drawing characters, bullets, em dashes, ellipses) display as
mojibake on Windows. This affects all terminal environments on Windows:
VS Code integrated terminal, Windows Terminal, PowerShell, and Command
Prompt.

Environment:

  • Claude Code version: 2.1.76
  • OS: Windows 11 Home 10.0.26200
  • Node.js: v22.21.0
  • Shell: Git Bash (bash) within VS Code terminal
  • TERM: xterm-256color

UTF-8 configuration (all confirmed correct):

  • System codepage (ACP/OEMCP): 65001 (UTF-8)
  • Windows Beta UTF-8 support: Enabled
  • Console OutputEncoding/InputEncoding: UTF-8
  • System locale: ja-JP
  • LANG: en_US.UTF-8

Symptoms:

  • Unicode characters used in the TUI (━, ·, …, →, ─, █, etc.) are

displayed as sequences like â€", •, …, · — this is the classic
pattern of UTF-8 bytes being decoded as Windows-1252/Latin-1

  • Affected areas: agent status bars, progress indicators

("Wrangling…"), thinking duration display, tool call headers, all
decorative UI elements

  • Actual text content (code, responses, English/Japanese text) renders

correctly

  • The issue occurs consistently, not intermittently

Steps to reproduce:

  1. Install Claude Code on Windows 11 (with UTF-8 beta enabled)
  2. Run claude in any terminal
  3. Ask a question that triggers extended thinking (e.g., use a model

with thinking enabled)

  1. Observe the UI chrome around tool calls and status indicators

Expected behavior:
UI elements should render Unicode characters correctly (progress bars,
spinners, box-drawing characters).

Actual behavior:
All multi-byte Unicode characters in UI elements are corrupted,
displaying as mojibake (UTF-8 bytes misinterpreted as CP1252).

Workaround:
Running Claude Code inside WSL avoids the issue entirely, confirming
the problem is specific to the Windows native terminal rendering
pipeline in Claude Code.

Possibly related issues: #9723, #6094, #29699, #31295

---

Environment Info

  • Platform: win32
  • Terminal: vscode
  • Version: 2.1.76
  • Feedback ID: cbf5d0e2-d372-475a-b31f-f0f7edc68f8e

Errors

[]

View original on GitHub ↗

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