Japanese text garbled (UTF-8 → CP932/Shift_JIS mojibake) in Cowork subprocess output

Resolved 💬 4 comments Opened Mar 19, 2026 by seino-tsuyoshi Closed Apr 16, 2026

Bug Description

When Claude Desktop's Cowork feature displays Japanese text from a Claude Code subprocess, multi-byte characters are garbled. The mojibake pattern is consistent with UTF-8 byte sequences being misinterpreted as CP932 (Windows Shift_JIS).

Steps to Reproduce

  1. Open Claude Desktop with Cowork enabled
  2. Have Claude Code process text containing Japanese characters (CJK + Katakana)
  3. Observe the output displayed in Claude Desktop

Example

| Expected | Actual (garbled) |
|---|---|
| Dockerの仮想マシンサービス | Dockerの莉ョ諠ウ繝槭す繝ウ繧オ繝シ繝薙せ |

Encoding analysis

The garbled text, when encoded as CP932 and decoded as UTF-8, produces the correct original text:

'莉ョ諠ウ繝槭す繝ウ繧オ繝シ繝薙せ'.encode('cp932').decode('utf-8')
# → '仮想マシンサービス'

This confirms the bytes are valid UTF-8 but are being interpreted as CP932/Shift_JIS somewhere in the pipeline.

Environment

  • OS: macOS 26.3.1 (Darwin 25.3.0)
  • Claude Code version: 2.1.79
  • Locale: LANG=ja_JP.UTF-8 (all LC_* set to ja_JP.UTF-8)

Expected Behavior

Japanese text should be displayed correctly in Cowork output.

Additional Context

  • ASCII characters and full-width parentheses are displayed correctly
  • Only multi-byte UTF-8 sequences (Kanji, Katakana) are affected
  • The issue appears to be in the encoding handling between the Claude Code subprocess and Claude Desktop's rendering layer

View original on GitHub ↗

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