【Windows】解决 Windows 11 Powershell 中文乱码的问题
·
目录
临时修改当前会话编码为 UTF-8
在 PowerShell 中运行以下命令
$OutputEncoding = [Console]::OutputEncoding = [Text.UTF8Encoding]::new($false)
其中:$false表示不带 BOM 的 UTF-8,适用于多数用途。
如果你还希望输入输出都支持中文等字符,推荐同时设置:
[Console]::InputEncoding = [Text.UTF8Encoding]::new($false)
[Console]::OutputEncoding = [Text.UTF8Encoding]::new($false)
在 PowerShell 脚本中设置编码
可以在脚本的顶部添加:
[Console]::InputEncoding = [System.Text.UTF8Encoding]::new($false)
[Console]::OutputEncoding = [System.Text.UTF8Encoding]::new($false)
这样在脚本运行时使用的是 UTF-8 编码,适合处理文件读写、外部程序调用的编码兼容。
永久修改 PowerShell 默认编码
修改 $PROFILE 脚本(推荐)
-
打开 PowerShell,输入:
notepad $PROFILE -
在打开的配置文件中加入以下内容:
[Console]::InputEncoding = [System.Text.UTF8Encoding]::new($false) [Console]::OutputEncoding = [System.Text.UTF8Encoding]::new($false) -
保存并关闭,重新打开 PowerShell 即可生效。
注意:如果提示
$PROFILE文件不存在,可以先运行New-Item -Path $PROFILE -ItemType File -Force创建。
验证编码是否生效
[Console]::OutputEncoding [Console]::InputEncoding
还可以输出中文试试是否乱码:
Write-Output "测试输出 - UTF-8"
如果你还需要处理文件的读取/写入并强制 UTF-8,可以这样用:
Get-Content file.txt -Encoding UTF8 Set-Content file.txt -Encoding UTF8 -Value "写入内容"
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)