[BUG] Japanese (CJK) characters garbled during streaming output

Resolved 💬 3 comments Opened Apr 8, 2026 by shota-nagayama Closed Apr 11, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

Japanese (CJK multi-byte) characters in the assistant's streaming output are intermittently garbled/corrupted. Characters appear to be split at token boundaries during streaming, resulting in broken/missing characters in the rendered text.

Examples of corrupted output observed:

  • 50チケッ��なら (expected: 50チケットなら)
  • 関連チケットと Scope外に反映しま�� (missing final character)
  • PR #356 ��修正に戻りますか? (corrupted character mid-sentence)

How to Reproduce

  1. Set locale to ja_JP.UTF-8
  2. Have a conversation in Japanese where Claude generates multi-paragraph responses
  3. Observe that some CJK characters are garbled/missing in the streamed output

The issue occurs randomly during streaming. It is not specific to any particular character — different characters are corrupted in different responses.

Environment

  • Claude Code version: 2.1.94
  • OS: macOS (Darwin 25.3.0)
  • Terminal: Ghostty (xterm-ghostty), also reproduced in VS Code integrated terminal and via cmux
  • Shell: zsh
  • Locale: ja_JP.UTF-8

Additional Context

  • This is NOT the spinner/status line garbling reported in #42177 — this affects the main assistant output text
  • The issue reproduces across multiple terminal emulators (Ghostty, VS Code terminal), ruling out terminal-specific rendering bugs
  • The issue also reproduces when using cmux (terminal multiplexer), but is not caused by it since it reproduces without cmux as well

View original on GitHub ↗

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