中国服务器网

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

Learn more

为什么当我最后离开输出编码为UTF8 csc.exe崩溃?

我遇到了一件很奇怪的事情。 我想知道是否有其他人,为什么发生。 用这行代码运行一行程序System.Console.WriteLine(System.Console.OutputEncoding.EncodingName); 我看到编码是Western European (DOS) 精细 这里列出了一些代码页1200 Unicode和65001 utf-8和Windows-1252 Western European (Windows)和850 Western European DOS从https://msdn.microsoft.com/en-us/library/system.text.encoding (v = vs.110)的.aspx 说我写了一个C锐利的程序来改变编码为UTF-8 class sdf { static void Main(string[] args) { System.Console.WriteLine(System.Console.OutputEncoding.EncodingName); System.Console.OutputEncoding=System.Text.Encoding.GetEncoding(65001); System.Console.WriteLine(System.Console.OutputEncoding.EncodingName); } } 它的作品,它打印 Western European (DOS) Unicode (UTF-8) 现在当我再次运行csc时,csc崩溃。 我使用memtest检查了我的RAM 14小时8次。 我跑了chkdsk我的硬盘,一切都好。 这绝对不是那些,这是一个编码问题。 我知道,因为如果我打开一个新的cmd提示符,然后运行csc,它不会崩溃。 所以运行这个c程序,改变了shell,以至于下一次运行csc就会使csc本身崩溃。 如果我编译下面的代码,然后运行它,然后运行csc,然后运行csc或csc whatever.cs,我得到csc崩溃。 所以closurescmd提示符,打开一个新的。 这一次,试验评论和取消注释的第二行程序 我发现,如果第二行(将代码页更改为850(DOS西欧)的行)存在,那么下次运行csc时它不会崩溃。 而如果我注释掉第二行,所以程序退出时,将代码页/编码更改为UTF-8,然后下一次csc运行,csc崩溃。 //取消最后一行的注释,然后//运行,但下一次会导致csc崩溃。 class asdf […]