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
- Open Claude Desktop with Cowork enabled
- Have Claude Code process text containing Japanese characters (CJK + Katakana)
- 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
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗