在 Windows PowerShell 中执行命令时,如果路径或输出包含中文字符,可能会出现乱码问题。
在 PowerShell 中执行以下命令:
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
[Console]::InputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding = [System.Text.Encoding]::UTF8
chcp 65001 | Out-Null运行项目根目录下的 setup-encoding.ps1 脚本:
.\setup-encoding.ps1将以下内容添加到 PowerShell 配置文件中:
- 检查配置文件是否存在:
Test-Path $PROFILE- 如果不存在,创建配置文件:
New-Item -Path $PROFILE -Type File -Force- 编辑配置文件,添加以下内容:
notepad $PROFILE在文件中添加:
# 设置 UTF-8 编码
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
[Console]::InputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding = [System.Text.Encoding]::UTF8
chcp 65001 | Out-Null- 保存并重新加载配置:
. $PROFILE如果是在 Cursor 中执行命令,可以在命令前添加编码设置:
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8; [Console]::InputEncoding = [System.Text.Encoding]::UTF8; $OutputEncoding = [System.Text.Encoding]::UTF8; chcp 65001 | Out-Null; Invoke-WebRequest -Uri http://localhost:8000/health -UseBasicParsing | Select-Object -ExpandProperty Content执行以下命令验证编码设置是否生效:
[Console]::OutputEncoding.EncodingName
$OutputEncoding.EncodingName应该显示 "Unicode (UTF-8)"。
- 方法 1 和方法 2 只在当前 PowerShell 会话中有效
- 方法 3 是永久设置,对所有新的 PowerShell 会话都有效
- 如果路径中包含中文字符,确保文件系统也支持 UTF-8 编码