Re: [問題] C# 使用PowerShell指令 卻出現亂碼

作者: pleaselouis (LOUIS￾N)   2022-07-21 14:24:19
※ 引述《pleaselouis (LOUIS￾N)》之銘言:
: 我在檔案總管 選擇: 檔案->開啟 Windows PowerShell 然後輸入指令 wsl -l -v
: 視窗會輸出以下的資訊
: PS D:\WSL Manager> wsl -l -v
: NAME STATE VERSION
: * Ubuntu Stopped 2
: PS D:\WSL Manager>
: 但是如果我在VC# 裡面寫CODE:
: PowerShell PowerShellInstance1 = PowerShell.Create();
: var cmd01 = "wsl -l -v";
: PowerShellInstance1.AddScript(cmd01);
: foreach (PSObject result in PowerShellInstance1.Invoke())
: {
: infoRichTextBox.AppendText(result.ToString() + "\n");
: }
: 在 infoRichTextBox.AppendText(result.ToString() + "\n"); 這一行定中斷 會看到
: result變數裡面存的是亂碼
: " \0 \0N\0A\0M\0E\0 \0 \0 \0 \0 \0 \0S\0T\0A\0T\0E\0 \0 \0 \0 \0 \0 \0 \0 \0
: \0 \0 \0V\0E\0R\0S\0I\0O\0N\0"
: 請問有人知道是怎麼回事嗎?? 我Google了很久 但是沒有找到解決辦法 請麻煩大家給我
: 意見 謝謝
剛剛在巴哈姆特的 程式設計版 有強者大大 教我怎麼做了
AddScript(cmd01) 前面多一行「AddScript("[console]::OutputEncoding =
New-Object System.Text.UnicodeEncoding")」
感謝網路上的各位強者大大的協助

Links booklink

Contact Us: admin [ a t ] ucptt.com