博客 / 詳情

返回

powershell 終端美化 git 分支名亂碼解決辦法

之前通過 on-my-posh 已經美化過一次了但是 如果我 git 分支名中有中文那麼他顯示的還是亂碼,所以現在想讓他正常顯示

圖片.png

通過如下命令找到主題文件

圖片.png

打開之後搜尋一番發現

圖片.png

ps 腳本我不太懂,看這個文件大致可以猜出來終端中上面那一行就是 $prompt 輸出後的結果,現在的問題縮小到如何讓 $prompt 內包含的中文輸出後正常顯示?

經過嘗試上圖紅框出輸入中文輸出的也是亂碼,網上搜尋無果,突然想起來gb2312 這個東西,將該文件使用gb2312編碼保存代碼內的中文可以輸出了

圖片.png

但右側分支名還是亂碼,猜測應該是一樣的問題,那麼應該會有這幾種解決方案

  1. 讓powershell 支持utf-8。這個因為其他問題之前試過,雖然utf-8 的是正常顯示了但導致本來中文能正常輸出的反而不行了
  2. 最好的方法應該是直接讓這個腳本可以輸出utf-8的字符
  3. 分支名轉 gb2312 再輸出

接下來就是去網上找文檔看有沒有辦法解決或者能實現我上面提出的兩個方案

在 https://www.zhihu.com/question/54724102/answer/1035566559 發現瞭解決方案1的實現方法

步驟如下

  1. 輸入 $profile 得到powershell配置文件地址

圖片.png

  1. 添加 $OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = New-Object System.Text.UTF8Encoding

圖片.png

中文分支名正確顯示!

圖片.png

另外的問題,顯示 emoji

我想在最前面放一個 emoji

圖片.png

圖片.png

在線編碼工具 http://tools.jb51.net/transcoding/decode_encode_tool

這個三角形的編碼就是 0x1F4D0 但打印出來後前面多了問號,不知道什麼原因,但前四位為0的emoji是可以正常顯示的,可能是因為組合字的緣故。

這個問題沒有想到比較好的方法,望瞭解者不吝賜教(´▽`ʃ♡ƪ) 。我只能暫時先用單個碼點的emoji了

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.