【问题标题】:Why is a string printed as a unicode character rather than readable text in C#?为什么字符串打印为 unicode 字符而不是 C# 中的可读文本?
【发布时间】:2013-04-11 20:38:18
【问题描述】:

我有一个作为 get 创建的字符串;设置;:

public static string userDirInput { get; set; }

我用Console.Read();给它一个值:

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

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

Console.Write("read as " + (string)userDirInput);

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

如何让它打印出可读的文本?

【问题讨论】:

  • 控制台的字体是否支持完整的 unicode 字符集?尝试将字体设置为您知道支持 unicode 的字体。
  • 输入是什么?你看到了什么?你的其余代码在哪里?
  • @Abbas 你不需要其他任何东西,因为所有信息都与问题相关。

标签: c# string unicode char


【解决方案1】:

因为Console.Read返回的是int,所以更适合获取char

int i = Console.Read();
char ch = Convert.ToChar(i);

使用ReadLine 获取字符串形式的输入:

string input = Console.ReadLine();

【讨论】:

  • 我也是第一个发布答案的,但这没关系。无需抱歉,这是您的决定,只需选择最佳答案即可。
【解决方案2】:

您可能想要使用Console.ReadLine,它返回一个stringConsole.Read 只读取一个字符,并将其作为Int32 返回。如果您将其转换为 char,您会看到您正在阅读用户输入的第一个字母,而不是整个字符串。

【讨论】:

  • 你是对的......谢谢。我不知道为什么我没有想到这一点。
【解决方案3】:

你可以试试 Convert.ToChar(Console.Read()).ToString();

【讨论】:

    猜你喜欢
    • 2014-08-23
    • 1970-01-01
    • 2015-08-26
    • 2012-09-12
    • 1970-01-01
    • 2010-11-27
    • 2016-07-11
    • 2011-08-04
    • 2016-12-29
    相关资源
    最近更新 更多