2013-04-18 43 views
1

我有一個字符串,我創建爲一個get;設置;:爲什麼在C#中將字符串打印爲unicode字符而不是可讀文本?

public static string userDirInput { get; set; }

我用Console.Read();給它一個值:

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

之前,我去比較它,我把它打印出來:

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

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

我該怎麼做才能打印出可讀的文字?

+0

控制檯的字體是否支持完整的Unicode字符集?嘗試將字體設置爲您知道具有Unicode支持的字體。 –

+1

輸入是什麼?你看到了什麼?你的代碼的其餘部分在哪裏? – Abbas

+0

@Abbas你不需要任何東西,因爲所有的信息都與問題相關。 – joesumbody122

回答

5

你可能想使用Console.ReadLine,它返回一個stringConsole.Read只讀取一個字符,並將其作爲Int32返回。如果您將它投射到char,您會看到您正在讀取用戶輸入的第一個字母,而不是整個字符串。

+0

你是對的......謝謝。我不知道爲什麼我沒有想到這一點。 – joesumbody122

2

這是因爲Console.Read返回int,所以它更適合獲得char

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

使用ReadLine獲得輸入的字符串:

string input = Console.ReadLine(); 
+0

你是對的,但他是第一個我讀對不起... – joesumbody122

+0

我也是第一個發佈答案,但這並不重要。無需抱歉,這是您的決定,只需選擇最佳答案即可。 – Zbigniew

2

您可以嘗試Convert.ToChar(Console.Read())。ToString();

相關問題