“ⓒ" U+24D2 fallback rendering in conhost / GDI #14848

Open
opened 2026-01-31 04:21:10 +00:00 by claunia · 0 comments
Owner

Originally created by @alabuzhev on GitHub (Aug 12, 2021).

Windows Terminal version (or Windows build number)

OpenConsole built from the latest source or taken from the latest Terminal Preview, e.g. 1.10.2107.12003

Other Software

No response

Steps to reproduce

  1. Create the following file:
@echo off
chcp 65001

echoecho ⁺ⓒ
  1. Save as test.cmd in UTF-8 encoding (or download test.cmd.txt and rename).
  2. Build and run the latest OpenConsole.
  3. Set the font to Consolas.
  4. Run test.cmd.

Expected Behavior

image

Actual Behavior

image

Details

It looks like the GDI renderer is having issues with the font fallback for the ⓒ - Circled Latin Small Letter C: U+24D2 character.
Usually it doesn't work at all and the replacement character is rendered instead.
However, as the example above demonstrates, sometimes it magically works in the presence of other Unicode characters, e.g. ⁺ - Superscript Plus Sign: U+207A.

It works as expected in WT and OpenConsole with the DirectX renderer.
It also works as expected in other GDI apps with font fallback, e.g. notepad.exe.

Also, it looks like the fallback glyph isn't clipped properly and can overlap with the next one:

image

Originally created by @alabuzhev on GitHub (Aug 12, 2021). ### Windows Terminal version (or Windows build number) OpenConsole built from the latest source or taken from the latest Terminal Preview, e.g. 1.10.2107.12003 ### Other Software _No response_ ### Steps to reproduce 1. Create the following file: ```cmd @echo off chcp 65001 echo ⓒ echo ⁺ⓒ ``` 2. Save as `test.cmd` in UTF-8 encoding (or download [test.cmd.txt](https://github.com/microsoft/terminal/files/6975762/test.cmd.txt) and rename). 3. Build and run the latest OpenConsole. 4. Set the font to Consolas. 3. Run `test.cmd`. ### Expected Behavior ![image](https://user-images.githubusercontent.com/11453922/129204828-93645e11-58f7-4454-9494-49eccf257807.png) ### Actual Behavior ![image](https://user-images.githubusercontent.com/11453922/129204861-88385aa1-9ced-454e-9bcc-3e60bbf91367.png) ### Details It looks like the GDI renderer is having issues with the font fallback for the `ⓒ - Circled Latin Small Letter C: U+24D2` character. Usually it doesn't work at all and the replacement character is rendered instead. However, as the example above demonstrates, sometimes it magically works in the presence of other Unicode characters, e.g. `⁺ - Superscript Plus Sign: U+207A`. It works as expected in WT and OpenConsole with the DirectX renderer. It also works as expected in other GDI apps with font fallback, e.g. notepad.exe. Also, it looks like the fallback glyph isn't clipped properly and can overlap with the next one: ![image](https://user-images.githubusercontent.com/11453922/129210610-1afc8e18-e9c4-4132-9a31-9aaeab736c88.png)
claunia added the Help WantedProduct-ConhostArea-RenderingIssue-BugPriority-3 labels 2026-01-31 04:21:10 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#14848