为什么字符串在C#中打印为unicode字符而不是可读文本?

为什么字符串在C#中打印为unicode字符而不是可读文本?,c#,string,unicode,char,C#,String,Unicode,Char,我创建了一个字符串作为get;集合;: 公共静态字符串userDirInput{get;set;} 我使用Console.Read()为其指定一个值: userDirInput=Convert.ToString(Console.Read()) 在比较之前,我先把它打印出来: Console.Write(“读取为”+(字符串)userDirInput) 它打印出unicode值和不可读的文本 如何使其打印出可读文本?这是因为返回一个int,因此更适合获取char: int i = Console.

我创建了一个字符串作为get;集合;:

公共静态字符串userDirInput{get;set;}

我使用
Console.Read()为其指定一个值:

userDirInput=Convert.ToString(Console.Read())

在比较之前,我先把它打印出来:

Console.Write(“读取为”+(字符串)userDirInput)

它打印出unicode值和不可读的文本

如何使其打印出可读文本?

这是因为返回一个
int
,因此更适合获取
char

int i = Console.Read();
char ch = Convert.ToChar(i);
使用
ReadLine
以字符串形式获取输入:

string input = Console.ReadLine();
这是因为返回一个
int
,所以更适合获取
char

int i = Console.Read();
char ch = Convert.ToChar(i);
使用
ReadLine
以字符串形式获取输入:

string input = Console.ReadLine();

您可能想使用,它返回一个
字符串
。仅读取单个字符,并将其作为
Int32
返回。如果将其转换为
char
,您会看到您正在读取用户键入的第一个字母,而不是整个字符串。

您可能想要使用,它返回一个
字符串。仅读取单个字符,并将其作为
Int32
返回。如果将其强制转换为
char
,您将看到您正在读取用户键入的第一个字母,而不是整个字符串。

您可以尝试转换.ToChar(Console.Read()).ToString()

您可以尝试Convert.ToChar(Console.Read()).ToString()

控制台的字体是否支持完整的unicode字符集?。尝试将字体设置为您知道支持unicode的字体。输入是什么?你看到了什么?您的其余代码在哪里?@Abbas您不需要其他任何东西,因为所有信息都与问题有关。控制台的字体是否支持完整的unicode字符集?。尝试将字体设置为您知道支持unicode的字体。输入是什么?你看到了什么?你剩下的代码在哪里?@Abbas你不需要其他任何东西,因为所有的信息都与问题有关。你是对的。。。非常感谢。我不知道为什么我没有想到。你是对的。。。非常感谢。我不知道为什么我没有想到这一点。我也是第一个发布答案的人,但这并不重要。不必道歉,这是你的决定,只要选择最好的答案。我也是第一个发布答案的人,但这并不重要。不必道歉,这是你的决定,只要选择最好的答案。