開始以為是控制台的原因,費了點勁
網上的修改注冊表等方法都不行,后面發現 C:\Windows\System32\cmd.exe 窗口,直接輸入:chcp 65001會直接保存。然后process的屬性里加上路徑:
process.StartInfo.FileName = @"C:\Windows\System32\cmd.exe";
居然還是亂碼。。。。。
了解到process.StandardOutput 默認的輸出流是GBK的,輸出中文時,出現亂碼
byte[] buffer = Encoding.Default.GetBytes(outtr);
outtr = Encoding.UTF8.GetString(buffer, 0, buffer.Length);
用這種方式先轉變成buff,再用utf-8的格式轉換成String(Default就是GBK),因為有“】”的原因,還是有部分亂碼。
解決方法:
process加上標准輸出的格式就可以了:
process.StartInfo.StandardOutputEncoding = Encoding.UTF8;
