赛派号

军用棉鞋男款 Visual Studio 2022自带的控制台为什么还会中文乱码?

检查下Locale设置?

我专门创建虚拟机测试了一下,系统默认Locale设置为 en-US,Code Page 437

using System.Text; Console.WriteLine($"Default output encoding class: {Console.OutputEncoding}"); Console.WriteLine($"Current output encoding: {Console.OutputEncoding.EncodingName}"); Console.WriteLine("Visual Studio 2022自带的控制台为什么还会中文乱码?"); Console.WriteLine(); Console.OutputEncoding = Encoding.Unicode; Console.WriteLine($"Current output encoding: {Console.OutputEncoding.EncodingName}"); Console.WriteLine("Visual Studio 2022自带的控制台为什么还会中文乱码?"); Console.WriteLine(); Console.OutputEncoding = Encoding.UTF8; Console.WriteLine($"Current output encoding: {Console.OutputEncoding.EncodingName}"); Console.WriteLine("Visual Studio 2022自带的控制台为什么还会中文乱码?");

输出为

Default output encoding class: System.Text.OSEncoding Current output encoding: Codepage - 437 Visual Studio 2022???????????????? Current output encoding: Unicode Visual Studio 2022自带的控制台为什么还会中文乱码? Current output encoding: Unicode (UTF-8) Visual Studio 2022自带的控制台为什么还会中文乱码?

可见主要原因是 C# 的 Console 在默认情况下使用的是 System.Text.OSEncoding 来编码控制台输出,受系统的 Locale 设置影响,设置为 UTF16 或 UTF8 Encoding 之后就能正常输出中文了。为何题主 JetBrains Rider 里能正常输出我就不清楚了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lsinopec@gmail.com举报,一经查实,本站将立刻删除。

上一篇 没有了

下一篇没有了