问题 控制台不显示中文输入字符串

ying

新成员
已加入
2020年11月24日
留言内容
2
编程经验
Beginner
你好,

就像我的标题所说的那样:在Windows 10上,我的控制台(cmd提示符)未通过Console.ReadLine显示中文输入字符串(但它正确显示了中文非输入字符串)。
这是我有问题的代码块:
C#:
using System;
using System.IO;
using System.Text;

namespace 字符
{
    class Program
    {
        static void Main(string[] args)
        {   
           
            Console.InputEncoding = Encoding.UTF8;
            string Name = "字符人";
            int Age;
            Age = 1;

            Console.WriteLine("你好!我是一个"+ Name + "。");
            Console.WriteLine("我现在" + Age + "岁了。");
            Console.WriteLine("这是现在的我:");
            Console.WriteLine(" ---------");
            Console.WriteLine("|    |    |");
            Console.WriteLine("|----+----|");
            Console.WriteLine("|    |    |");
            Console.WriteLine(" ---------");

            string Nameuser, Name1, 颜色, 高度, 兴趣爱好, 性格特点;
           
            Console.Write("你叫什么名字:");
           
            Nameuser = Console.ReadLine();
            Console.WriteLine("你好,"+ Nameuser + "!"); 
(etc.)

控制台中的输出(cmd提示符)如下所示:
C#:
你好!我是一个字符人。
我现在1岁了。
这是现在的我:
---------
|    |    |
|----+----|
|    |    |
---------
你叫什么名字:王先生
你好,   !
你也帮我取个名字:
如您所见,在您好和!之间存在三个空格。我已经为控制台输入指定了编码,因此我不明白为什么输入字符串显示不正确。
在此先感谢您的帮助!
干杯XD
 
由主持人最后编辑:

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,535
地点
弗吉尼亚州切萨皮克
编程经验
10+
I don't have a machine setup for Chinese locale, but part of me is suspicious of the your line of code where you wrote Console.InputEncoding = Encoding.UTF8; yet you say that you are entering Chinese characters. In my mind, if the input encoding is UTF8, you should be not be entering Unicode Chinese characters. You should be entering UTF8 8-bit characters that represent the Unicode Chinese characters.
 

ying

新成员
已加入
2020年11月24日
留言内容
2
编程经验
Beginner
亲爱的跳伞运动员,谢谢您的建议。实际上,我是在问题首次发生后添加该行的,试图解决它。据我所知,UTF8应该能够处理中文。但是,我欢迎任何有关编码的建议。有任何想法吗?
谢谢!
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,535
地点
弗吉尼亚州切萨皮克
编程经验
10+
在此SO响应中看起来是个好主意:
 
最佳 底部