台灣最大程式設計社群網站
線上人數
1393
 
會員總數:246739
討論主題:190152
歡迎您免費加入會員
討論區列表 >> C# >> C# 使用PowerShell指令 卻出現亂碼
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
C# 使用PowerShell指令 卻出現亂碼
價值 : 50 QP  點閱數:101 回應數:1
樓主

Louis Chen
門外漢
0 1
6 1
發送站內信





我在檔案總管 選擇: 檔案->開啟 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了很久 但是沒有找到解決辦法 請麻煩大家給我意見 謝謝

搜尋相關Tags的文章: [ C# Powershell ] ,
本篇文章發表於2022-07-21 11:53
1樓
作者回應

Louis Chen
檢舉此回應
剛剛在巴哈討論區 有強者大大教我了

AddScript(cmd01) 前面多一行「AddScript("[console]::OutputEncoding = New-Object System.Text.UnicodeEncoding")」

即可
本篇文章回覆於2022-07-21 14:22
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.