我使用.NET ProcessStartInfo.RedirectStandardOutput
和Process.BeginOutputReadLine
來捕獲另一個程序(特別是,youtube-dl.exe)的標準輸出並將它們保存到字符串變量中。捕獲另一個命令行程序的標準輸出,其中字符不在當前代碼頁
但是結果變量包含我的語言只有平常的字符,如中國和英文字母的傳統;帶有口音的韓文或拉丁字母等字符完全消失。
我File.WriteAllText
-ed結果變量和檢查文件使用serveral文本編輯器,所以我敢肯定他們丟失,而不是他們的存在,只是不能顯示,通過控制檯窗口。
說白了執行的YouTube-DL在Windows命令提示符顯示完整的信息,包括這些外國文字。
我youtubeDL_process.OutputDataReceived
很簡單:
(s, e) => {
if(!string.IsNullOrWhiteSpace(e.Data)) this._filename = e.Data;
}
如何使重定向的標準輸出字符串外文字符完整的,就像一個在命令提示符下直接產生的?