这可能是一个不成熟的问题,可能缺少了一些东西,但是我的问题是
尝试将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/