尝试写入特殊字符时控制台输出格式问题
Console Output Format Problem when trying to write special characters
我写了一个代码,写了一些特殊字符,但是当我 运行 它时,我得到了很多问号(?)
代码如下:
Console.WriteLine("");
Console.Write(" ⌜ ", Color.FromArgb(51, 204, 255));
Console.Write("ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ ", Color.FromArgb(128, 128, 128));
Console.Write("⌝", Color.FromArgb(51, 204, 255));
输出编码可以是 ASCII。
您可以尝试在Console.WriteLine
之前设置为UTF8
Console.OutputEncoding = System.Text.Encoding.UTF8;
字体也可能是问题所在,在某些情况下,您需要安装对所需语言的支持,例如韩语。如果更改编码对您不起作用,您也可以在互联网上查看。
我认为您最好的选择可能是忘记那些旧的“扩展”ASCII 字符并使用 Unicode equivalents。这是打印它们的示例:
Console.OutputEncoding = System.Text.Encoding.Unicode;
Console.Write(" ");
for (int col = 0; col < 16; col++)
{
Console.Write(" {0:X}", col);
}
Console.WriteLine();
for (int row = 0x2500; row <= 0x2570; row += 16)
{
Console.Write("{0:X}", row);
for (int col = 0; col < 16; col++)
{
Console.Write(" {0}", Char.ConvertFromUtf32(row + col));
}
Console.WriteLine("\r\n");
}
这输出:
0 1 2 3 4 5 6 7 8 9 A B C D E F
2500 ─ ━ │ ┃ ┄ ┅ ┆ ┇ ┈ ┉ ┊ ┋ ┌ ┍ ┎ ┏
2510 ┐ ┑ ┒ ┓ └ ┕ ┖ ┗ ┘ ┙ ┚ ┛ ├ ┝ ┞ ┟
2520 ┠ ┡ ┢ ┣ ┤ ┥ ┦ ┧ ┨ ┩ ┪ ┫ ┬ ┭ ┮ ┯
2530 ┰ ┱ ┲ ┳ ┴ ┵ ┶ ┷ ┸ ┹ ┺ ┻ ┼ ┽ ┾ ┿
2540 ╀ ╁ ╂ ╃ ╄ ╅ ╆ ╇ ╈ ╉ ╊ ╋ ╌ ╍ ╎ ╏
2550 ═ ║ ╒ ╓ ╔ ╕ ╖ ╗ ╘ ╙ ╚ ╛ ╜ ╝ ╞ ╟
2560 ╠ ╡ ╢ ╣ ╤ ╥ ╦ ╧ ╨ ╩ ╪ ╫ ╬ ╭ ╮ ╯
2570 ╰ ╱ ╲ ╳ ╴ ╵ ╶ ╷ ╸ ╹ ╺ ╻ ╼ ╽ ╾ ╿
这是我的 Windows 10 框的屏幕截图:
我写了一个代码,写了一些特殊字符,但是当我 运行 它时,我得到了很多问号(?)
代码如下:
Console.WriteLine("");
Console.Write(" ⌜ ", Color.FromArgb(51, 204, 255));
Console.Write("ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ ", Color.FromArgb(128, 128, 128));
Console.Write("⌝", Color.FromArgb(51, 204, 255));
输出编码可以是 ASCII。
您可以尝试在Console.WriteLine
Console.OutputEncoding = System.Text.Encoding.UTF8;
字体也可能是问题所在,在某些情况下,您需要安装对所需语言的支持,例如韩语。如果更改编码对您不起作用,您也可以在互联网上查看。
我认为您最好的选择可能是忘记那些旧的“扩展”ASCII 字符并使用 Unicode equivalents。这是打印它们的示例:
Console.OutputEncoding = System.Text.Encoding.Unicode;
Console.Write(" ");
for (int col = 0; col < 16; col++)
{
Console.Write(" {0:X}", col);
}
Console.WriteLine();
for (int row = 0x2500; row <= 0x2570; row += 16)
{
Console.Write("{0:X}", row);
for (int col = 0; col < 16; col++)
{
Console.Write(" {0}", Char.ConvertFromUtf32(row + col));
}
Console.WriteLine("\r\n");
}
这输出:
0 1 2 3 4 5 6 7 8 9 A B C D E F
2500 ─ ━ │ ┃ ┄ ┅ ┆ ┇ ┈ ┉ ┊ ┋ ┌ ┍ ┎ ┏
2510 ┐ ┑ ┒ ┓ └ ┕ ┖ ┗ ┘ ┙ ┚ ┛ ├ ┝ ┞ ┟
2520 ┠ ┡ ┢ ┣ ┤ ┥ ┦ ┧ ┨ ┩ ┪ ┫ ┬ ┭ ┮ ┯
2530 ┰ ┱ ┲ ┳ ┴ ┵ ┶ ┷ ┸ ┹ ┺ ┻ ┼ ┽ ┾ ┿
2540 ╀ ╁ ╂ ╃ ╄ ╅ ╆ ╇ ╈ ╉ ╊ ╋ ╌ ╍ ╎ ╏
2550 ═ ║ ╒ ╓ ╔ ╕ ╖ ╗ ╘ ╙ ╚ ╛ ╜ ╝ ╞ ╟
2560 ╠ ╡ ╢ ╣ ╤ ╥ ╦ ╧ ╨ ╩ ╪ ╫ ╬ ╭ ╮ ╯
2570 ╰ ╱ ╲ ╳ ╴ ╵ ╶ ╷ ╸ ╹ ╺ ╻ ╼ ╽ ╾ ╿
这是我的 Windows 10 框的屏幕截图: