Skip to content

Persian (Farsi) text rendered with reversed character order and no shaping #20156

@mmizanian

Description

@mmizanian

Windows Terminal version

1.25.923.0 (Preview) – but the issue is NOT limited to Windows Terminal.

Windows build number

10.0.26200

Other affected environments

  • Windows Terminal (Preview & Stable)
  • Classic Console Host (conhost.exe) used by PowerShell 5.1, PowerShell 7.x, and CMD
  • Any application that relies on the legacy console rendering for text output

Shells affected

  • PowerShell 7.6.1
  • Windows PowerShell 5.1
  • Command Prompt (CMD)
  • (The issue is shell-agnostic; it appears in any console host)

Steps to reproduce

  1. Open any of the above shells in any console window (Windows Terminal or legacy conhost).
  2. Type or output a simple Persian word: "سلام".
  3. Observe the on-screen rendering.

Expected Behavior

The text should display correctly with right-to-left order and connected letterforms: سلام.

Actual Behavior

The letters appear in reversed order (left-to-right) and disconnected. "سلام" (s-l-a-m) is rendered as "مالس" (m-a-l-s). Characters are isolated instead of using their contextual joining forms.
Copying the text from any console and pasting it into an editor yields the correct logical order (سلام), proving the internal memory buffer is correct, but the display output is reversed and lacks complex script shaping.

Additional context

This is a long-standing issue across the entire Windows console ecosystem, affecting Persian, Arabic, and other right-to-left scripts. While Windows Terminal introduced a modern rendering stack, even in the Preview version the RTL text layout logic seems absent or broken. Because the legacy conhost has no shaping support at all, and Windows Terminal does not yet handle it either, all Persian users are unable to read any shell output natively. This severely impacts adoption and usability. Please prioritize investigating bidirectional text rendering and font shaping (Uniscribe/DirectWrite) for RTL scripts in the Windows Terminal rendering pipeline, as it would also set a standard for future console improvements across the board.

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    Needs-Tag-FixDoesn't match tag requirementsNeeds-TriageIt's a new issue that the core contributor team needs to triage at the next triage meeting

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions