Jus*_*ner 5 c# unicode fonts width fixed-width
我正在编写一个 C# 程序,并使用固定宽度的字体来显示所有内容。在这种字体下,每个 Unicode 字符要么占用 1 个字符宽度,要么占用 2 个字符宽度。程序中有一个功能,需要判断某个字符占用1个字符宽度还是2个字符宽度。首先我使用正则表达式[^\\x00-\\xFF]来解决问题。如果有字符匹配,则占用1个字符宽度,否则占用2个字符宽度。但后来我发现这是不正确的。例如,这些字符\xe2\x94\x8c\xe2\x94\x80\xe2\x94\xac\xe2\x94\x90\xe2\x94\x82\xe2\x94\x9c\xe2\x94\xbc\xe2\x94\xa4\xe2\x94\xb4\xe2\x94\x98不在 的范围内[^\\x00-\\xFF],但它们都只占用 1 个字符宽度。我想知道在C#中如何确定使用定宽字体时特定字符占用1个字符宽度还是2个字符宽度?
小智 1
我也在寻找同样问题的答案......但我还没有找到。顺便说一句,我终于写了一个库来获取字符长度(使用 Console.Write() 和 Console.CursorLeft 生成显示字符长度的范围信息,然后转换为 C# 代码,当获取字符长度时,使用二分查找更高的速度)
nuget:NullLib.ConsoleEx 项目:https://github.com/SlimeNull/NullLib.ConsoleEx