这可能是一个不成熟的问题,可能缺少了一些东西,但是我的问题是

尝试将char转换为int以获得该char的ASCII值,在大多数情况下,我会得到特定char的正确/预期的ASCII码,但在某些情况下却没有。有人可以解释我为什么吗?

例子:

// Example 1:-

Console.WriteLine((int)'a');

// gives me 97 perfect!

// Example 2:-

Console.WriteLine((char)1); gives me ☺

// now

Console.WriteLine((int )'☺');

// this should give me 1, instead it gives me 9786 why?

这发生在ASCII> 127或ASCII <32上。

最佳答案

\01是不可打印的字符,因为结果控制台可以自由使用任何替换使其可见。

同样,默认的Windows控制台不是非常友好Unicode的,因此当您打印默认可打印ASCII范围之外的字符时,会发生奇怪的事情。

关于c# - 从Char到int的转换以获取ASCII,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15283747/

10-16 05:12