[PR #10381] fix: specify UTF-8 encoding for Buffer.toString() on Windows - Issue #10341 #13428

Closed
opened 2026-02-16 18:18:17 -05:00 by yindo · 0 comments
Owner

Original Pull Request: https://github.com/anomalyco/opencode/pull/10381

State: closed
Merged: No


Problem

Non-ASCII characters displayed incorrectly on Windows (Scoop installations), showing garbled Unicode characters.

Root Cause: Buffer.toString() uses the system's default encoding:

  • Windows: CP1252 or CP437 (not UTF-8)
  • Linux/macOS: UTF-8 (default)

Solution

Explicitly specify UTF-8 encoding in two locations:

File: src/cli/cmd/tui/util/terminal.ts

// Before:
const str = data.toString()

// After:
const str = data.toString("utf8")

File: src/cli/cmd/tui/app.tsx

// Before:
const str = data.toString()

// After:
const str = data.toString("utf8")

Impact

  • Windows Users: Non-ASCII characters (emoji, international text) now display correctly
  • Cross-Platform: Consistent text handling across all platforms

Testing

  • Verified with existing test suite (752/759 tests passing)
  • Tested on Linux with UTF-8 characters (terminal color queries work correctly)

Fixes #10341 - Critical Windows compatibility bug

**Original Pull Request:** https://github.com/anomalyco/opencode/pull/10381 **State:** closed **Merged:** No --- ## Problem Non-ASCII characters displayed incorrectly on Windows (Scoop installations), showing garbled Unicode characters. **Root Cause**: `Buffer.toString()` uses the system's default encoding: - Windows: CP1252 or CP437 (not UTF-8) - Linux/macOS: UTF-8 (default) ## Solution Explicitly specify UTF-8 encoding in two locations: **File**: `src/cli/cmd/tui/util/terminal.ts` ```typescript // Before: const str = data.toString() // After: const str = data.toString("utf8") ``` **File**: `src/cli/cmd/tui/app.tsx` ```typescript // Before: const str = data.toString() // After: const str = data.toString("utf8") ``` ## Impact - **Windows Users**: Non-ASCII characters (emoji, international text) now display correctly - **Cross-Platform**: Consistent text handling across all platforms ## Testing - Verified with existing test suite (752/759 tests passing) - Tested on Linux with UTF-8 characters (terminal color queries work correctly) Fixes #10341 - Critical Windows compatibility bug
yindo added the pull-request label 2026-02-16 18:18:17 -05:00
yindo closed this issue 2026-02-16 18:18:17 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: anomalyco/opencode#13428