[BUG] Thai characters display as squares (tofu) in Claude Code CLI - works fine outside Claude
Status Fixed / completed
Reported on v2.1.12
Maintainer reply None cached
Activity 15 comments · opened Jan 18, 2026 · closed Feb 6, 2026
Describe the bug
Thai characters display as squares (tofu/boxes) when using Claude Code CLI. The same terminal displays Thai characters correctly when NOT running inside Claude Code.
Environment
- Claude CLI version: 2.1.12
- Platform: Windows 11 + WSL2 (Ubuntu)
- Terminals tested: Windows Terminal, PuTTY, VS Code integrated terminal
- Locale: C.UTF-8
Steps to reproduce
- Open any terminal (Windows Terminal, VS Code, PuTTY)
- Verify Thai characters display correctly:
echo "สวัสดีครับ"→ Shows Thai text properly - Launch Claude Code:
claude - Claude Code UI and responses show Thai characters as squares (□□□□□)
Expected behavior
Thai characters should display correctly in Claude Code CLI, just like they do in the regular terminal.
Actual behavior
- Thai characters appear as squares/boxes (tofu)
- This happens in ALL terminals when running Claude Code
- Terminal displays Thai correctly when NOT in Claude Code
- Bash command output within Claude Code shows Thai correctly (e.g.,
echo "ภาษาไทย"works) - Only Claude Code's own UI/response text renders Thai as squares
- This confirms the issue is within Claude Code's TUI rendering, not the terminal/font
Additional context
This issue affects Thai-speaking users who need to work in their native language. The problem appears to be in Claude Code's TUI (Terminal User Interface) rendering layer, not in the terminal emulator or font configuration.
Related issues
- #3961 - Unicode Input Handling Fails for Vietnamese Characters
- #6094 - Unicode Character Input Corruption
- #1716 - UTF-8 Corruption Bug
- #14686 - Korean characters display issues
15 Comments
Found 3 possible duplicate issues:
This issue will be automatically closed as a duplicate in 3 days.
🤖 Generated with Claude Code
<img width="454" height="162" alt="Image" src="https://github.com/user-attachments/assets/a27edeb4-6be6-4c71-b9a4-4f13574f296e" />
This issue is related but not a duplicate of the suggested issues:
This issue specifically reports Thai language characters displaying as squares (tofu). While the root cause is likely the same TUI Unicode rendering problem, having separate issues for different languages helps:
Please keep this issue open as a reference for Thai language support in Claude Code's TUI rendering.
<img width="775" height="230" alt="Image" src="https://github.com/user-attachments/assets/84d1aadd-af5f-42c8-8e2b-e32bad7a2e1a" />
Me too
I face the same issue
<img width="526" height="116" alt="Image" src="https://github.com/user-attachments/assets/c7abf1e6-f06a-43ff-afaa-6c2d013c2808" />
+1
+1 same issue
+1 same issue
<img width="560" height="104" alt="Image" src="https://github.com/user-attachments/assets/3554689e-f76a-4614-b1ce-9b0e51ad232f" />
mac
Additional finding from Thai user:
The issue is more specific than font rendering - Thai vowel อา (U+0E32) is being filtered/stripped out rather than just displaying as tofu.
Example:
This suggests the TUI is stripping certain Unicode characters, not just failing to render them.
Other Thai characters that may be affected:
This is different from the "tofu squares" issue - the characters are completely invisible/removed.
Screenshot evidence of Thai vowel อา (U+0E32) being stripped:
\ at [1, 50]","locations":[{"line":1,"column":50}]}]}upload-failed
The screenshot shows:
| Displayed | Expected |
|-----------|----------|
| ปัญหสระ อหย | ปัญหาสระอาหาย |
| จัดกร | จัดการ |
| ถ้ไม่ | ถ้าไม่ |
| ปัญหอื่น | ปัญหาอื่น |
Every instance of Thai vowel อา (U+0E32) is completely removed from the output.
<img width="1035" height="498" alt="Image" src="https://github.com/user-attachments/assets/9fc47942-ca7f-4030-bd21-25bd95d41253" />
not limited to Thai. This happening on english (usa) language, and has been for ~4-5+ weeks
This has been fixed in the latest release. Thai spacing vowels (U+0E32 SARA AA, U+0E33 SARA AM) were incorrectly classified as zero-width combining marks in the TUI rendering pipeline, causing them to be silently dropped from the screen buffer. The fix corrects the width classification so these characters are properly treated as width-1 spacing vowels and render correctly.
Please update to the latest version and confirm the fix. Closing this issue.
This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.