代码之家  ›  专栏  ›  技术社区  ›  elgrego

System.Net.WebClient中的powershell字符编码

  •  5
  • elgrego  · 技术社区  · 15 年前

    我正在运行以下命令:

    ([xml](new-object net.webclient).DownloadString(
    "http://blogs.msdn.com/powershell/rss.aspx"
    )).rss.channel.item | format-table title,link
    

    其中一个RSS项目的输出包含以下奇怪的文本:

    You Don’t Have to Be An Administrator to Run Remote PowerShell Commands
    

    • 为什么角色混淆?撇号怎么了?为什么输出呈现为 Don’t 当它应该渲染为 Don't ?
    • 如何在PowerShell标准输出中获得正确的字符?
    1 回复  |  直到 8 年前
        1
  •  11
  •   Filburt kukabuka    15 年前

    您需要设置webclient的encoding属性:

    $wc = New-Object System.Net.WebClient
    $wc.Encoding = [System.Text.Encoding]::UTF8
    ([xml]$wc.DownloadString( "http://blogs.msdn.com/powershell/rss.aspx" )).rss.channel.item | format-table title,link