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

PowerShell重定向原生命令输出到变量时出现Unicode编码错误的问询

问题原因

直接执行命令输出到控制台时,Windows终端(或PowerShell控制台)默认支持UTF-8字符显示,能正常处理↳这类特殊字符。但将输出保存到变量或管道给PowerShell cmdlet(如Select-Object)时,PowerShell默认会使用系统的**ANSI代码页(charmap)**解码外部命令(html2text)的输出。而html2text输出的是UTF-8编码内容,其中的↳字符不在当前ANSI代码页的字符集中,因此触发UnicodeEncodeError编码错误。

解决方法

以下几种方式可解决编码不匹配问题:

  • 全局设置控制台输出编码为UTF-8
    先配置PowerShell读取外部命令输出时使用UTF-8编码,后续所有外部命令都会遵循该设置:

    [Console]::OutputEncoding = [System.Text.UTF8Encoding]::New()
    # 之后执行命令即可正常保存或管道处理
    $pageContent = wget -qO- "目标网页URL" | html2text
    
  • 指定html2text输出UTF-8编码
    若你的html2text版本支持编码参数,可直接让工具输出UTF-8内容,从源头避免编码问题:

    $pageContent = wget -qO- "目标网页URL" | html2text --encode utf-8
    
  • 用Out-String显式指定编码
    通过Out-String强制以UTF-8编码处理输出内容:

    $pageContent = (wget -qO- "目标网页URL" | html2text) | Out-String -Encoding utf8
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 02:57:37