Support unicode ascii art on Windows properly on all backends (only works on qwqfetch before this fix). This is useful since Windows Terminal can output/render UTF-8 characters. Configuration related to UTF-8 might be needed on Windows 10, though for me it works without changing any setting.
Very limited new circumstances for "garbled" output
After this change: When a Windows is in raw Powershell/cmd (not Windows Terminal), and happens to be intentionally using custom ascii art with unicode charaters, the neofetch (builtin) and fastfetch backends (in addition to it already being possible on qwqfetch) will output unicode replacement characters / tofu or otherwise not render the ascii art correctly.
This is probably a more desirable outcome than hitting an uncaught Python error. I think it is reasonable for a user who is customizing their config to this degree to be expected to set the shell encoding settings or system settings to match the output of the *fetch backend. The responsibility already applies for the user when directly using the backend with such custom ascii art.
Relevant Links
Fixes #293
Screenshots
Before: See issue.
After:
(this specific ascii art is set for testing, not likely to actually be used on Windows)
Testing
Verified unicode is output is properly rendered on the following systems:
Windows 11 Pro, 23H2, with Windows Terminal Version: 1.17.11461.0, with PowerShell and cmd prompts
Windows 10 Pro, 21H1, with Windows Terminal Version: 1.19.11213.0, with PowerShell prompt
Ubuntu 23.10, KDE Plasma 5, Konsole 23.08.1 (Linux not affected by bug)
For each system on the following backends:
neofetch (builtin)
fastfetch 2.13.1 (fastfetch-old does not support Windows)
Description
Support unicode ascii art on Windows properly on all backends (only works on qwqfetch before this fix). This is useful since Windows Terminal can output/render UTF-8 characters. Configuration related to UTF-8 might be needed on Windows 10, though for me it works without changing any setting.
Very limited new circumstances for "garbled" output
After this change: When a Windows is in raw Powershell/cmd (not Windows Terminal), and happens to be intentionally using custom ascii art with unicode charaters, the neofetch (builtin) and fastfetch backends (in addition to it already being possible on qwqfetch) will output unicode replacement characters / tofu or otherwise not render the ascii art correctly.
This is probably a more desirable outcome than hitting an uncaught Python error. I think it is reasonable for a user who is customizing their config to this degree to be expected to set the shell encoding settings or system settings to match the output of the *fetch backend. The responsibility already applies for the user when directly using the backend with such custom ascii art.
Relevant Links
Fixes #293
Screenshots
Before: See issue. After: (this specific ascii art is set for testing, not likely to actually be used on Windows)
Testing
Verified unicode is output is properly rendered on the following systems:
For each system on the following backends:
Additional context
None.