[Bug] Non-ASCII characters appearing unexpectedly in Claude Code output
Status Open
Reported on v2.1.183
Maintainer reply None cached
Activity 5 comments · opened Jun 20, 2026
Bug Description
how did 状态 be in the output of claude? am i being hacked?
Environment Info
- Platform: darwin
- Terminal: xterm-256color
- Version: 2.1.183
- Feedback ID: ee21ae4c-ec50-42b4-91c9-b3f71e5f3679
Errors
[]
5 Comments
@matthew-semasoftware What languages do you have enabled on your computer, English only?
@skelouse only English and Thai, no Chinese at all.
Adding a corroborating data point - the same
状态sequence, independent occurrence - in case it helps withneeds-repro.What happened: In an otherwise 100%-English assistant response (~300 words), a single word was emitted as the Chinese
状态instead of the English "status":Worth noting:
状态means "status/state." So this looks like a semantically-correct, token-level language switch — the model reached for the equivalent Chinese token for one word mid-sentence; rather than random bytes, mojibake, or an encoding fault. (To the original reporter's worry: this isn't a sign of compromise; it reads as a multilingual-model "code-switching" leak where a single output token surfaces in another language that carries the same meaning.)Context that may correlate:
claude-fable-5)It was a single isolated token: fluent English immediately before and after, no other anomalies in the surrounding output. Happy to share more detail if useful.
I have a current Opus 5 recurrence of the same semantically appropriate Chinese-for-English substitution.
In an otherwise English assistant response, the persisted raw session text contains:
The unexpected character is
近(U+8FD1). It occurs in an assistant text block generated byclaude-opus-5at2026-08-13T14:38:49.536Z, not in user input, a tool result, model thinking, or a source file. A scan of the complete raw JSONL session found no other CJK character.Environment:
claude-opus-5)Because
近means “near/close” and appears where English “near” or “nearly” would fit, this is consistent with mixed-script model generation rather than random bytes or a display-only glyph problem. That classification is an inference; the transcript proves the persisted character and its message source, but not the internal tokenization or root cause.This appears closely related to #80053, #82041, and #83324.
I also experienced this "Chinese character insertion" a while ago on the iOS app in the normal chat interface with Fable 5 in a longer session.