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

如何在PowerShell中正确使用重定向处理含重音符号的字符

PowerShell重定向保留重音字符解决方案

出现乱码的核心原因是两个环节编码不匹配:一是PowerShell默认解析网页返回内容时未正确识别源站UTF-8编码,二是管道传输、输出文件时的编码设置不一致。可通过以下两种方法解决:

方法1:使用Invoke-WebRequest显式处理编码

PowerShell中默认的curl是Invoke-WebRequest命令的别名,通过显式读取响应字节流并指定编码解析,可从根源避免编码识别错误:

  • 执行以下命令获取并输出内容:
# 拉取网页原始响应内容
$webResp = Invoke-WebRequest -Uri "https://www.microsoft.com/fr-ca/" -UseBasicParsing
# 用UTF-8解码原始字节流,得到正确的带重音字符的内容
$decodedContent = [System.Text.Encoding]::UTF8.GetString($webResp.RawContentStream.ToArray())
# 输出到文件时指定UTF-8编码
$decodedContent | Out-File -FilePath "test.txt" -Encoding UTF8
  • 如果你需要无BOM的UTF-8文件,PowerShell 6及以上版本可将最后一行的编码参数替换为-Encoding utf8NoBOM。

方法2:显式调用原生curl.exe调整编码

如果习惯使用原生curl工具,可通过修改当前PowerShell会话的控制台输出编码实现正常输出:

  • 执行以下命令:
# 临时修改当前会话的控制台输出编码为UTF-8,仅对当前窗口生效
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
# 显式调用curl.exe(避免调用PowerShell别名)并输出到文件
curl.exe "https://www.microsoft.com/fr-ca/" | Out-File -FilePath "test.txt" -Encoding UTF8

以上两种方法都可以正常保留"productivité"这类带重音的特殊字符,不会再出现乱码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 12:24:00