c# 控制台应用程序中的 Macron
Macron in c# console application
我正在尝试使用斜杠和破折号创建堡垒,我需要使用长音符(上划线)。我尝试了几种方法,但其中 none 行得通。任何想法如何使它工作?我得到的不是 Macron,而是“?”
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace kingsdom
{
class Program
{
static void Main(string[] args)
{
int n = int.Parse(Console.ReadLine());
string ups = new string ('^', n / 2);
string midUps = new string('_' ,(n * 2) - (((n / 2) * 2) + 4));
string whitespaces = new string(' ', (n * 2) - 2);
string downs = new string('_', n / 2);
string midDowns = new string('\u203E', (n * 2) - (((n / 2) * 2) + 4));
Console.WriteLine("{0}{1}{2}{3}{0}{1}{2}", "/", ups, "\", midUps);
for (int i = 0; i < n - 2; i++)
{
Console.WriteLine("{0}{1}{0}", "|", whitespaces);
}
Console.WriteLine("{0}{1}{2}{3}{0}{1}{2}", "\", downs, "/", midDowns);
}
}
}
控制台可以使用不同的代码页来显示文本。并非所有这些代码页都能正确显示所有字符。例如,当您使用代码页 855 时,Windows 系统使用带有西里尔字母的东欧语言的默认代码页,则无法显示 Macron 字符。
您可以通过在 Main 函数的开头设置 Console.OutputEncoding
来定义用于您自己的控制台输出的代码页:
Console.OutputEncoding = Encoding.Unicode;
这将使控制台可以显示任何 Unicode 字符。
如果您想使用特定的代码页,例如 437(美国),您可以这样写:
Console.OutputEncoding = Encoding.GetEncoding(437);
注意这里使用Encoding.Unicode
至少需要.net版本4.5。
有关详细信息,请参阅 documentation of property Console.OutputEncoding。
我正在尝试使用斜杠和破折号创建堡垒,我需要使用长音符(上划线)。我尝试了几种方法,但其中 none 行得通。任何想法如何使它工作?我得到的不是 Macron,而是“?”
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace kingsdom
{
class Program
{
static void Main(string[] args)
{
int n = int.Parse(Console.ReadLine());
string ups = new string ('^', n / 2);
string midUps = new string('_' ,(n * 2) - (((n / 2) * 2) + 4));
string whitespaces = new string(' ', (n * 2) - 2);
string downs = new string('_', n / 2);
string midDowns = new string('\u203E', (n * 2) - (((n / 2) * 2) + 4));
Console.WriteLine("{0}{1}{2}{3}{0}{1}{2}", "/", ups, "\", midUps);
for (int i = 0; i < n - 2; i++)
{
Console.WriteLine("{0}{1}{0}", "|", whitespaces);
}
Console.WriteLine("{0}{1}{2}{3}{0}{1}{2}", "\", downs, "/", midDowns);
}
}
}
控制台可以使用不同的代码页来显示文本。并非所有这些代码页都能正确显示所有字符。例如,当您使用代码页 855 时,Windows 系统使用带有西里尔字母的东欧语言的默认代码页,则无法显示 Macron 字符。
您可以通过在 Main 函数的开头设置 Console.OutputEncoding
来定义用于您自己的控制台输出的代码页:
Console.OutputEncoding = Encoding.Unicode;
这将使控制台可以显示任何 Unicode 字符。
如果您想使用特定的代码页,例如 437(美国),您可以这样写:
Console.OutputEncoding = Encoding.GetEncoding(437);
注意这里使用Encoding.Unicode
至少需要.net版本4.5。
有关详细信息,请参阅 documentation of property Console.OutputEncoding。