C# 運行控制台程序中文亂碼


開始以為是控制台的原因,費了點勁

網上的修改注冊表等方法都不行,后面發現 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;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM