【问题标题】:Why console output has question marks instead of Chinese characters in Windows Forms visual studio?为什么在 Windows Forms Visual Studio 中控制台输出有问号而不是汉字?
【发布时间】:2020-12-30 09:27:49
【问题描述】:

我的 Windows 窗体应用程序显示 ???问号。输出应该是中文字符。这是照片: console output has question marks

【问题讨论】:

  • 在从源到目的地的旅程的某个时刻,您的 unicode 字符串已通过无法理解 unicode 的内容进行处理
  • 我有美国本地化,里面的代码有一些汉字,会不会是问题?
  • .NET 对字符串使用 UTF16,但其中涉及多个步骤,例如读取 unicode 文件,存储 unicode,将其打印到某个设备。您的问题有点困惑,因为您谈论的是 Windows 窗体,但随后显示了控制台的屏幕截图,实际上,如果没有看到读取此文本、存储并输出它的完整代码,我们将无能为力
  • 除了上述cmets,我怀疑问题可能来自您使用的控制台,请确保它使用的字体支持汉字的UTF-8代码页。跨度>

标签: c# visual-studio winforms console


【解决方案1】:

你也可以试试下面的代码来显示汉字。

Console.OutputEncoding = Encoding.GetEncoding(936);

【讨论】:

  • 好像可以了,同时是繁体字的简体字936?
【解决方案2】:

您是否尝试将控制台编码设置为 utf8

 Console.OutputEncoding= Encoding.UTF8

但它可能仍然无法与此代码一起使用

控制台模式程序受困于非 Unicode 支持。必须如此,因为它们的输出可以被重定向。除非系统代码页是中文,否则它们不会正确显示中文字符。

您使用的其他正确支持中文输入的程序都启用了 Unicode。这是获得成功的方法,编写一个真正的 Windows 程序而不是控制台模式应用程序。使用 Windows 窗体并不难。

【讨论】:

    【解决方案3】:

    感谢大家的意见。我尝试了 Jack J Jun - MSFT 和 Bilal BWS 方法,它似乎有效。同时,我在区域设置中解决了这个问题,在管理部分通过将系统区域设置更改为中文:

    【讨论】:

      猜你喜欢
      • 2014-03-18
      • 1970-01-01
      • 2020-04-24
      • 2014-05-23
      • 2014-05-02
      • 2016-06-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多