【茶包射手筆記】PowerShell 轉存 git 輸出到文字檔,中文變亂碼
2 |
問題很簡單。git diff HEAD HEAD~ > diff.txt
將修改差異轉存 diff.txt,在 Cmd DOS 視窗執行沒什麼問題:
在 PowerShell 環境執行同樣指令,寫入檔案的中文變亂碼:
網路爬文繞了一大圈,驀然回首,答案躺在自家部落格深處 - 【茶包射手日記】PowerShell 串接 EXE 輸出中文變亂碼。
標準的 PowerShell 串接 EXE 輸出編碼問題,加上 [Console]::OutputEncoding = [Text.Encoding]::UTF8
即可解決。(問題解析請見舊文,此略)
感覺忘記自己查過、解過、做過,會成為我「寫程式寫到八十」路上的絆腳石,鳴~~~
【同場加映】
很多人都說程式設計師馬上要被 ChatGPT 幹掉,不免俗拿這個問題問問神奇海螺。ChatGPT 洋洋灑灑列了一堆做法,但沒包含最關鍵的 [Console]::OutputEncoding。
潮水退去,茶包老射手褲子還在(雖已滑到低腰),保住一絲尊嚴。
Comments
# by Anonymous
cmd.exe 叫命令提示字元 不是 DOS 視窗
# by Jeffrey
to Anonymous,嘿,叫它小叮噹叫習慣了 https://blog.darkthread.net/blog/ms-dos-prompt/