cmderdev / cmder

Lovely console emulator package for Windows
https://cmder.app
MIT License
25.69k stars 2.02k forks source link

[Bug] wired color blocks when running a CLI program based on Python and prompt_toolkit in cmder #2924

Open kkhaveabigdream opened 4 months ago

kkhaveabigdream commented 4 months ago

Version Information

Cmder version: 1.3.21
Operating system: win11

Description of the issue

When running a Python CLI program based on prompt_toolkit in cmder, there are strange color blocks in the UI. It appears to be a problem with Chinese character parsing, as lines containing Chinese characters render with color blocks exceeding their expected length. However, this issue does not occur in PowerShell looks fine in powershell: 1 wired in cmder: 2

chrisant996 commented 4 months ago

The difference is Windows Terminal vs ConEmu.

Powershell isn't related to this.

chrisant996 commented 4 months ago

Also, probably if you run chcp 65001 that might resolve the issue.

Code page 936 has a collection of characters that it defines as "ambiguous width". Some things treat them as 1 cell wide, and some things treat them as 2 cells wide. Setting the terminal to use code page to UTF8 (by running chcp 65001) gets out of that mode, and then the character widths are unambiguous.

kkhaveabigdream commented 4 months ago

I have set the environment like this,but noting changes 3

kkhaveabigdream commented 4 months ago

tried run chcp 65001, doesn't resolve this issue :(

chrisant996 commented 4 months ago

You might be able to try a different Chinese font in ConEmu, or a different font size. It looks like the Chinese font is different than in Windows Terminal, or at least a slightly different size.

But this isn't a Cmder issue, it's a ConEmu issue. Try going to the ConEmu repo and searching issues there, or opening an issue there.

kkhaveabigdream commented 4 months ago

thanks a lot! It does give me a direction.