You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell脚本在CMD中输出法语特殊字符显示异常求助

PowerShell脚本UTF-8字符输出乱码排查方案

问题场景

执行以下PowerShell脚本:

[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$name= "François Remetter"
write-host $name

在CMD或PowerShell提示符中输出出现乱码:

D:\Codes\PSScripts>powershell exec.ps1
François Remetter

已尝试切换代码页至1252和65001,问题仍存在。

解决方法

  • 确保脚本文件以UTF-8 BOM编码保存
    Windows下PowerShell默认优先识别带BOM的UTF-8文件,若脚本是无BOM的UTF-8格式,会导致字符解析错误。用记事本打开脚本,选择「文件」→「另存为」,编码选「UTF-8」(带BOM),保存后重新执行。

  • 同时配置输入输出编码
    仅设置Console::OutputEncoding不足以解决问题,需同步配置PowerShell的编码与控制台编码:
    修改脚本为:

    # 配置控制台输入输出编码为UTF-8
    [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
    [Console]::InputEncoding = [System.Text.Encoding]::UTF8
    # 配置PowerShell自身的输出编码为UTF-8
    $OutputEncoding = [System.Text.Encoding]::UTF8
    
    $name= "François Remetter"
    Write-Host $name
    
  • CMD中执行前先配置编码与字体
    在CMD中调用PowerShell前,先执行以下命令切换编码,同时将控制台字体改为「Lucida Console」或「Consolas」(部分字体不支持UTF-8字符):

    chcp 65001
    powershell -ExecutionPolicy Bypass -File exec.ps1
    
  • 升级至PowerShell 7+版本
    PowerShell 7(跨平台版)对UTF-8支持更完善,默认采用无BOM的UTF-8编码,无需额外配置即可正确显示UTF-8字符。

内容的提问来源于stack exchange,提问作者Sayandip Ghatak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 08:07:08