【问题标题】:Console Output Format Problem when trying to write special characters尝试写入特殊字符时出现控制台输出格式问题
【发布时间】:2021-12-31 01:05:17
【问题描述】:

我写了一个写一些特殊字符的代码,但是当我运行它时,我得到了很多问号(?)

代码如下:

        Console.WriteLine("");
        Console.Write(" ⌜ ", Color.FromArgb(51, 204, 255));
        Console.Write("ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ ", Color.FromArgb(128, 128, 128));
        Console.Write("⌝", Color.FromArgb(51, 204, 255));

【问题讨论】:

  • 尝试更改控制台字体,例如console.Font = new Font("Consolas", 12);stackoverflow.com/questions/47014258/…
  • 好像没有Console.Font这种东西
  • 检查源文件确实是您认为默认/正常/想要的任何编码。我通常在记事本中打开文件以查看使用了哪种编码。带有 BOM 的 UTF-8 似乎是 VS 中的默认设置。此外,控制台窗口可以显示不同的编码,所以也许你也应该弄清楚那是什么。还有一个已知问题。你不能确定你看到的字符是按照你想象的方式编码的。它可能因您从何处复制粘贴而异。将文本转换为字节,写出字节的值,看看它们是否是你所期望的。可能会有惊喜。
  • 必须是控制台应用吗?

标签: c# console-application


【解决方案1】:

我认为您最好的选择可能是忘记那些旧的“扩展”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 盒子的屏幕截图:

【讨论】:

    【解决方案2】:

    输出编码可以是 ASCII。

    您可以尝试在Console.WriteLine之前设置为UTF8

    Console.OutputEncoding = System.Text.Encoding.UTF8;
    

    字体也可能是问题所在,在某些情况下,您需要安装对所需语言的支持,例如韩语。如果更改编码对您不起作用,您也可以在 Internet 上进行检查。

    【讨论】:

    • 我试过了,它似乎没有太大变化,我也将发布这个应用程序,所以我不希望我的应用程序需要额外的语言来安装和类似的东西
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-20
    相关资源
    最近更新 更多