【发布时间】:2019-09-11 12:12:40
【问题描述】:
我正在尝试通过PowerShell 下载和解析rss feed。
Invoke-WebRequest -Uri 'https://example.com/rss.php' -OutFile $file -UseBasicParsing -Headers @{"Content-Type"="text/html"; "charset"="utf-8"}
您可以在下面看到编码错误的响应/下载。
-
<description>Foo übermitteln</description>应该是Foo übermitteln -
<description>Gr&ouml;&#223;e<br></description>应该是Größe
<?xml version="1.0" encoding="iso-8859-1" ?><rss version="2.0">
<channel>
<title>Foo RSS-Feed</title>
<link>https://example.com</link>
<description>Foo übermitteln</description>
<language>de-de</language>
<copyright>Copyright 2019 Example.com</copyright>
<item>
<title>Lorem Ipsum</title>
<link>https://example.com/details.php?id=1234&hit=1</link>
<guid>1234</guid>
<category>Foo</category>
<pubDate>2019-08-09 10:12:49</pubDate>
<description>Größe<br></description>
</item>
</channel>
</rss>
任何人都可以给我一个提示,我可以如何成功地对响应进行编码/解码并将其解析为xml?
实际上,我使用以下代码手动编码流:
$rssResponse = Invoke-WebRequest -UseBasicParsing -Method Get -Headers $defaultHeaders -Uri $uri
$rss = [System.Text.Encoding]::UTF8.GetString($rssResponse.RawContentStream.ToArray())
回复:
<?xml version="1.0" encoding="iso-8859-1" ?><rss version="2.0">
<channel>
<title>Foo RSS-Feed</title>
<link>https://example.com</link>
<description>Foo übermitteln</description>
<language>de-de</language>
<copyright>Copyright 2019 Example.com</copyright>
<item>
<title>Lorem Ipsum</title>
<link>https://example.com/details.php?id=1234&hit=1</link>
<guid>1234</guid>
<category>Foo</category>
<pubDate>2019-08-09 10:12:49</pubDate>
<description>Größe<br></description>
</item>
</channel>
</rss>
但是还是有问题.. ??????
【问题讨论】:
-
如果你这样做
@{"Content-Type"="text/html"; "charset"=" ISO-8859-1"会发生什么? -
同样的结果。如果我更改字符集也没关系。我添加了更多信息。
标签: powershell encoding rss