gpt4 book ai didi

c# - 将 C# 控制台应用程序设置为 Unicode 输出

转载 作者:太空狗 更新时间:2023-10-29 22:25:39 27 4
gpt4 key购买 nike

我有一个 C# 控制台应用程序,我试图在其中做一些 ASCII 艺术。但是,我想使用的一些字符是 Unicode。因此,我正在搜索互联网/SO,但找不到关于如何在 C# 控制台应用程序中将控制台设置为 Unicode 的统一答案。

TDLR:如何将 C# 控制台应用程序中的控制台设置为 Unicode?

编辑:我确实找到了 this post在搜索与此问题无关的内容之后。

最佳答案

事实证明,为了使控制台显示 Unicode 字符,您需要设置多项内容。

  1. 将控制台设置为支持 Unicode 的字体。为此,使用 Console.ReadKey(); 运行一次 C# 控制台应用程序,使窗口保持打开状态。右键单击窗口的标题栏并选择属性。通过 Visual Studio 进行调试时,这些选项将持续存在。 您可能需要使用默认菜单来代替在整个系统中保留选项。字体选项卡中,您需要将字体设置为 Lucida Console。此字体支持 Unicode 字符。相关帖子可见here .
  2. 将控制台的代码页设置为 UTF-8。 这个有点棘手。因为,您必须在控制台窗口中执行命令才能更改代码页。无论出于何种原因,此选项都不能作为控制台首选项使用。为此,您需要创建一个单独的 cmd.exe 进程,并使用它代替提供的普通控制台。

    var cmd = new Process
    {
    StartInfo =
    {
    FileName = "cmd.exe",
    RedirectStandardInput = true,
    RedirectStandardOutput = true,
    CreateNoWindow = true,
    UseShellExecute = false
    }
    };
    cmd.Start();

    cmd.StandardInput.WriteLine("chcp 65001");
    cmd.StandardInput.Flush();
    cmd.StandardInput.Close();

    上面代码的第一部分将创建一个新的 cmd.exe 进程。 StartInfo 的设置将确保 Console 被重定向到这个新进程。代码的第二部分向该控制台窗口发送命令并运行它。该命令 chcp 65001 将控制台的代码页设置为 UTF-8。相关帖子可见herehere .

  3. 将 OutputEncoding 设置为 UTF-8。这是 Console.WriteLine 实际输出 Unicode 字符的唯一方法。设置这个非常简单。

    Console.OutputEncoding = Encoding.UTF8;

    现在,Console 的任何输出都将采用 Unicode。相关帖子可见here .

所以,就是这样!我希望这些信息对某人有所帮助。 :-)

关于c# - 将 C# 控制台应用程序设置为 Unicode 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38533903/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com