C# 控制台将方框字符输出为“?”
C# Console is outputting box characters as "?"
为了好玩,我正在用 ascii 制作游戏,但我遇到了一个问题,即字符未按我预期的方式打印。
它不是正常打印字符,而是打印出问号。
情况是这样的:
预期结果:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ PacGunMan [_][^][X] ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ Main Menu ┃
┃ ━━━━━━━━━━━━━━━━━━━━━ ┃
┃ ┃
┃ [1] Start ┃
┃ [2] Settings ┃
┃ [3] Credits ┃
┃ [4] Exit ┃
┃ ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
我实际得到的是:
???????????????????????????????
? PacGunMan [_][^][X] ?
???????????????????????????????
? Main Menu ?
? ????????????????????? ?
? ?
? [1] Start ?
? [2] Settings ?
? [3] Credits ?
? [4] Exit ?
? ?
???????????????????????????????
渲染源代码:
public static void Automatic(List<string> RenderItem) {
Console.WriteLine("Rendering...");
foreach (string Y in RenderItem) { // The variable is named "Y" because Y-Axis
Console.WriteLine(Y);
}
}
C#,出于某种原因,以 ASCII 编码打印字符。所以我们需要将编码类型改为UTF-8。
发生这种情况的原因之一可能是字符实际上可能不是 ASCII 格式。但在这种情况下,这是打印 error/problem 而不是字符的问题。
所以我们可以这样做:
Console.OutputEncoding = Encoding.UTF8; // Get C# to do this before outputting/printing.
渲染源代码应该是这样的:
public static void Automatic(List<string> RenderItem) {
Console.OutputEncoding = Encoding.UTF8;
Console.WriteLine("Rendering...");
foreach (string Y in RenderItem) {
Console.WriteLine(Y);
}
}
为了好玩,我正在用 ascii 制作游戏,但我遇到了一个问题,即字符未按我预期的方式打印。 它不是正常打印字符,而是打印出问号。 情况是这样的:
预期结果:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ PacGunMan [_][^][X] ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ Main Menu ┃
┃ ━━━━━━━━━━━━━━━━━━━━━ ┃
┃ ┃
┃ [1] Start ┃
┃ [2] Settings ┃
┃ [3] Credits ┃
┃ [4] Exit ┃
┃ ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
我实际得到的是:
???????????????????????????????
? PacGunMan [_][^][X] ?
???????????????????????????????
? Main Menu ?
? ????????????????????? ?
? ?
? [1] Start ?
? [2] Settings ?
? [3] Credits ?
? [4] Exit ?
? ?
???????????????????????????????
渲染源代码:
public static void Automatic(List<string> RenderItem) {
Console.WriteLine("Rendering...");
foreach (string Y in RenderItem) { // The variable is named "Y" because Y-Axis
Console.WriteLine(Y);
}
}
C#,出于某种原因,以 ASCII 编码打印字符。所以我们需要将编码类型改为UTF-8。
发生这种情况的原因之一可能是字符实际上可能不是 ASCII 格式。但在这种情况下,这是打印 error/problem 而不是字符的问题。
所以我们可以这样做:
Console.OutputEncoding = Encoding.UTF8; // Get C# to do this before outputting/printing.
渲染源代码应该是这样的:
public static void Automatic(List<string> RenderItem) {
Console.OutputEncoding = Encoding.UTF8;
Console.WriteLine("Rendering...");
foreach (string Y in RenderItem) {
Console.WriteLine(Y);
}
}