ConEmu
ConEmu copied to clipboard
no support for new Nerd Font Unicode range
Versions
ConEmu build: 221218 x64 OS version: Windows 10 x64 Used shell version: whatever, for example Powershell7
Problem description
Conemu does not display correct Unicode from this ranges https://github.com/ryanoasis/nerd-fonts/issues/1059#issuecomment-1404891287 For example "`u{f45d} `u{f1a5e} `u{e0c3} `u{f1a5f}"
in Powershell 7 does not display correct f1a5e
and f1a5f
. Windows Terminal displays it correct
Steps to reproduce
- Use
"`u{f45d} `u{f1a5e} `u{e0c3} `u{f1a5f}"
command in Conemu Powershell 7
Actual results
Squares (or other unknown character depend on font) display at position 2 and 4
Expected results
Regular character from nerd font should display
Maybe the title of this should include "5 digit unicode". The 5 digits means more than 2 bytes, windows with 16 bit chars this is 4 bytes.
Also compare
- #2128
- https://conemu.github.io/en/UnicodeSupport.html
Also, the unicode-support page linked above talks about 'Font charset'.
In fact there is a bitfield in fonts that inform about the unicode ranges that font contains. If I remember correctly fontforge
has a bug that does NOT set the appropriate bit for PUA-A (i.e. 5 digit Nerd Font icons). I have never noticed any application that checks that bits, but maybe it is different here.
@markonop93 for testing purposes I can provide you with a manually corrected charset-bitfield Agave font set, so that we could rule that out (or fix the problem, but I doubt that)?
@Finii sure feel free sending me anything for test ^^ Pls notice I have caching issue so other font which unused by me still would be better . for example Ubuntu Nerd Font
@Finii sorry for ping , only to make sure you did not forgot :)
:-) Sorry, of course I did forget. Let my quickly implement that.
We need to have bit 90 set:
https://learn.microsoft.com/en-us/typography/opentype/spec/os2#ulunicoderange1-bits-031ulunicoderange2-bits-3263ulunicoderange3-bits-6495ulunicoderange4-bits-96127
The left byte of the third block holds bits 88 to 95.
The 00
resp. 04
is then bit 90.
(It was Agave, right?)
I hope .NET is not involved here...: :unamused:
https://learn.microsoft.com/en-us/dotnet/api/system.text.unicode.unicoderange?view=net-8.0#remarks
@Finii unfortunately it did not help . same characters dont work