我使用Console
类打印某些有时包含Unicode字符的结果。使用String.PadRight
的传统填充方法无法正常工作,因为某些Unicode字符在字符串中占用一个字符,但在屏幕上占用两个字符。这里是代码:使用Unicode字符的C#控制台字符串填充
Console.Out.WriteLine("123".PadRight(10, '-'));
Console.Out.WriteLine("xxxxxx".PadRight(10, '-'));
Console.Out.WriteLine("你好".PadRight(10, '-'));
在输出中,前两行结束在同一位置,而第三行是两个字符长。代码页是:936(ANSI/OEM - 简体中文GBK)。
所以我想知道是否有一种方法可以在打印到控制台屏幕时获得字符串的实际宽度。谢谢!
你可以在不使用实际字符的情况下编写代码,使用'\ u0000'格式代替,在这个问题上,我的意思是? –
这是一个字体问题,如果您没有关于用于这些字符(不在控制台中)的字体的知识(和控制),那么您确实没有办法做到这一点。 – poke
@ LasseV.Karlsen在这里,我只想显示代码的功能。当然,我会避免直接写这种东西。 –