powershell 终端美化 git 分支名乱码解决办法

之前通过 on-my-posh 已经美化过一次了但是 如果我 git 分支名中有中文那么他显示的还是乱码,所以现在想让他正常显示

powershell 终端美化 git 分支名乱码解决办法_第1张图片

通过如下命令找到主题文件

powershell 终端美化 git 分支名乱码解决办法_第2张图片

打开之后搜寻一番发现

powershell 终端美化 git 分支名乱码解决办法_第3张图片

ps 脚本我不太懂,看这个文件大致可以猜出来终端中上面那一行就是 $prompt 输出后的结果,现在的问题缩小到如何让 $prompt 内包含的中文输出后正常显示?

经过尝试上图红框出输入中文输出的也是乱码,网上搜寻无果,突然想起来gb2312 这个东西,将该文件使用gb2312编码保存代码内的中文可以输出了

powershell 终端美化 git 分支名乱码解决办法_第4张图片

但右侧分支名还是乱码,猜测应该是一样的问题,那么应该会有这几种解决方案

  1. 让powershell 支持utf-8。这个因为其他问题之前试过,虽然utf-8 的是正常显示了但导致本来中文能正常输出的反而不行了
  2. 最好的方法应该是直接让这个脚本可以输出utf-8的字符
  3. 分支名转 gb2312 再输出

接下来就是去网上找文档看有没有办法解决或者能实现我上面提出的两个方案

https://www.zhihu.com/question/54724102/answer/1035566559 发现了解决方案1的实现方法

步骤如下

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

powershell 终端美化 git 分支名乱码解决办法_第5张图片

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

图片.png

中文分支名正确显示!

powershell 终端美化 git 分支名乱码解决办法_第6张图片

另外的问题,显示 emoji

我想在最前面放一个 emoji

图片.png

powershell 终端美化 git 分支名乱码解决办法_第7张图片

在线编码工具 http://tools.jb51.net/transcoding/decode_encode_tool

这个三角形的编码就是 0x1F4D0 但打印出来后前面多了问号,不知道什么原因,但前四位为0的emoji是可以正常显示的,可能是因为组合字的缘故。

这个问题没有想到比较好的方法,望了解者不吝赐教(´▽`ʃ♡ƪ) 。我只能暂时先用单个码点的emoji了

你可能感兴趣的:(终端,powershell,乱码)