本帖最后由 鬼鬼 于 2014-3-24 20:14 编辑
为了解决这个帖子里遗留的问题:
http://bbs.itheima.com/thread-110572-1-1.html
自己写了一个测试:
- static void Main(string[] args)
- {
- ConsoleKeyInfo info;
- int code = 0;
- info = Console.ReadKey();
- code = Convert.ToInt32(info.KeyChar);
- Console.WriteLine("输入流编码:{0}",Console.InputEncoding.EncodingName);
- Console.WriteLine("输出流编码:{0}", Console.OutputEncoding.EncodingName);
- Console.WriteLine("{0}",code);
- Console.ReadKey(true);
- }
复制代码
程序运行后键入回车,输出结果为:
输入流编码:简体中文(GB2312)
输出流编码:简体中文(GB2312)
13
查了一下编码表,ASCII中的13正好就是回车键,看来回车键的ConsoleKeyInfo中KeyChar值应该就是这个特殊的控制字符:ASCII编码中13对应的回车键。
但是问题来了,我的控制台的当前编码不是gb2312么?刚才查了下,gb2312中13是未编码的,为什么会在gb2312编码的输入流中读到编码是13的字符呢?
望高人解答………… |