[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

  1. Open any terminal (Windows Terminal, VS Code, PuTTY)
  2. Verify Thai characters display correctly: echo "สวัสดีครับ" → Shows Thai text properly
  3. Launch Claude Code: claude
  4. 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

View original on GitHub ↗

15 Comments

github-actions[bot] · 7 months ago

Found 3 possible duplicate issues:

  1. https://github.com/anthropics/claude-code/issues/18103
  2. https://github.com/anthropics/claude-code/issues/18281
  3. https://github.com/anthropics/claude-code/issues/9907

This issue will be automatically closed as a duplicate in 3 days.

  • If your issue is a duplicate, please close it and 👍 the existing issue instead
  • To prevent auto-closure, add a comment or 👎 this comment

🤖 Generated with Claude Code

ptanik01 · 7 months ago

<img width="454" height="162" alt="Image" src="https://github.com/user-attachments/assets/a27edeb4-6be6-4c71-b9a4-4f13574f296e" />

ptanik01 · 7 months ago

This issue is related but not a duplicate of the suggested issues:

  • #18103 - Chinese characters (different language, same root cause)
  • #18281 - Kannada characters (different language, same root cause)
  • #9907 - Nerd Font icons (different issue - icon fonts, not language characters)

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:

  1. Track which languages are affected
  2. Verify fixes work across all affected scripts
  3. Allow affected users from different regions to subscribe and provide feedback

Please keep this issue open as a reference for Thai language support in Claude Code's TUI rendering.

AiKongGithub · 7 months ago

<img width="775" height="230" alt="Image" src="https://github.com/user-attachments/assets/84d1aadd-af5f-42c8-8e2b-e32bad7a2e1a" />

AiKongGithub · 7 months ago

Me too

Xaypanya · 7 months ago

I face the same issue

<img width="526" height="116" alt="Image" src="https://github.com/user-attachments/assets/c7abf1e6-f06a-43ff-afaa-6c2d013c2808" />

pukkaew · 7 months ago

+1

itorz7 · 7 months ago

+1 same issue

lambogreny · 7 months ago

+1 same issue

itorz7 · 7 months ago

<img width="560" height="104" alt="Image" src="https://github.com/user-attachments/assets/3554689e-f76a-4614-b1ce-9b0e51ad232f" />

mac

ptanik01 · 7 months ago

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:

  • Expected: ภาษา (5 characters: ภ า ษ า)
  • Actual display: ภษ (2 characters - both อา vowels missing)

This suggests the TUI is stripping certain Unicode characters, not just failing to render them.

Other Thai characters that may be affected:

  • สระอา (า) U+0E32
  • Possibly other Thai vowels and tone marks

This is different from the "tofu squares" issue - the characters are completely invisible/removed.

ptanik01 · 7 months ago

Screenshot evidence of Thai vowel อา (U+0E32) being stripped:

\![Thai vowel stripped](https://github.com/user-attachments/assets/{"errors":[{"message":"Expected VALUE, actual: UNKNOWN_CHAR (\"\\\\\") 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" />

codeaucafe · 7 months ago

not limited to Thai. This happening on english (usa) language, and has been for ~4-5+ weeks

cirospaciari · 6 months ago

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.

github-actions[bot] · 6 months ago

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.