跳至内容

补全菜单的编码

  • PSCompletions 会使用 $PSCompletions.menu.encoding 获取到的编码来加载补全菜单
  • 通常情况下,它会获取到一个合适的区域编码
  • 你可以运行它来查看当前菜单使用的编码
    powershell
    $PSCompletions.menu.encoding

  • 如果启用了以下设置:
    1. 打开 控制面板 > 区域和语言 > 管理
    2. 点击 更改系统区域设置
    3. 勾选 Beta 版: 使用 Unicode UTF-8 提供全球语言支持
  • 那么 $PSCompletions.menu.encoding 会获取到统一的 UTF-8 编码
  • 但是,在 Windows Terminal (Windows 终端) 中,UTF-8 编码会导致补全菜单中的中文乱码
  • 你需要手动修改补全菜单使用的编码,例如中文,就通过 936 去获取合适的编码
    powershell
    Import-Module PSCompletions
    $PSCompletions.menu.encoding = [System.Text.Encoding]::GetEncoding(936)