目录

临时修改当前会话编码为 UTF-8

在 PowerShell 脚本中设置编码

永久修改 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 脚本(推荐)

  1. 打开 PowerShell,输入:

    notepad $PROFILE
  2. 在打开的配置文件中加入以下内容:

    [Console]::InputEncoding = [System.Text.UTF8Encoding]::new($false)
    [Console]::OutputEncoding = [System.Text.UTF8Encoding]::new($false)
  3. 保存并关闭,重新打开 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 "写入内容"
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐