在 Windows 作業系統使用 EMILY.RPA PowerShell 模組時
常常有使用者遇到「中文程式碼變成亂碼」的問題
或是「讀取 UTF-8 編碼文字檔,會變成亂碼」等問題
以下設定分享給各位參考
1. 確認 PowerShell 當前編碼
右鍵 > 以系統管理員身分執行 PowerShell
打開 Windows PowerShell
於 PowerShell 視窗內輸入以下程式碼確認
[console]::OutputEncoding
[console]::InputEncoding
正常來說,沒有做任何設定的話,編碼會是 big5
我們要把他調整成 UTF8
這樣 EMILY.RPA 呼叫 PowerShell 模組執行程式碼時,才不會有中文變成亂碼的問題
2. 確認 $PROFILE 變數
接下來我們要讓 系統在執行 PowerShell 程式碼之前
都先執行一次編碼轉換的程式
我們先在 PowerShell 視窗中輸入以下程式碼
$PROFILE
這時候會有一個路徑跑出來
這個路徑上的檔案就是 PowerShell 在執行時,都會先去執行這個路徑上的 .ps1 檔案
3. 新增 Microsoft.PowerShell_profile.ps1 檔案至 步驟2 路徑
我們可以打開 PowerShell ISE
來撰寫 ps1 檔案
程式碼如下 :
$OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = [Text.UTF8Encoding]::UTF8
接著 另存新檔 到 步驟2 路徑
注意! 檔名要跟路徑上面的一樣
4. 在 PowerShell 中更改 EXECUTIONPOLICY
注意! 是在以系統管理原身分執行的 PowerShell 中,非 PowerShell ISE
注意! 是在以系統管理原身分執行的 PowerShell 中,非 PowerShell ISE
注意! 是在以系統管理原身分執行的 PowerShell 中,非 PowerShell ISE
輸入以下程式碼
set-executionpolicy remotesigned
接著輸入 Y,按下 ENTER
到這邊,就全部設定完成了
接下來就可以前往 EMILY.RPA PowerShell 模組測試看看含有中文的程式碼
以及讀寫文字檔等等的功能
看看還有沒有中文變成亂碼的問題出現