Мне кажется, вы правы:/
Вот один из способов, чтобы получить право содержания, но вы не имеете дело с HtmlWebResponseObject
:
Invoke-WebRequest http://colours.cz/ucinkujici -outfile .\colours.cz.txt
$content = gc .\colours.cz.txt -Encoding utf8 -raw
Это поможет вам одинаково далеко:
[net.httpwebrequest]$httpwebrequest = [net.webrequest]::create('http://colours.cz/ucinkujici/')
[net.httpWebResponse]$httpwebresponse = $httpwebrequest.getResponse()
$reader = new-object IO.StreamReader($httpwebresponse.getResponseStream())
$content = $reader.ReadToEnd()
$reader.Close()
Если вы действительно хотите такой HtmlWebResponseObject
, вот способ, чтобы получить, например, материал от более ParsedHtml
или менее "читаемым" с Invoke-WebRequest
($bad
VS. $better
):
Invoke-WebRequest http://colours.cz/ucinkujici -outvariable htmlwebresponse
$bad = $htmlwebresponse.parsedhtml.title
$better = [text.encoding]::utf8.getstring([text.encoding]::default.GetBytes($bad))
$bad = $htmlwebresponse.links[7].outerhtml
$better = [text.encoding]::utf8.getstring([text.encoding]::default.GetBytes($bad))
Update: Вот новый взгляд на это, зная, что вы хотите работать с ParsedHtml
.
После того, как у вас есть контент, вы можете сделать это:
$ParsedHtml = New-Object -com "HTMLFILE"
$ParsedHtml.IHTMLDocument2_write($content)
$ParsedHtml.Close()
Et вуаля:] Е.Г. $ParsedHtml.title
теперь отображается правильно, угадывая, что остальное тоже будет хорошо ...
Вы показываете результаты в консоли powershell.exe? Возможно, ваш шрифт не поддерживает символов. – x0n
Я использую powershell ISE v3. Я бы сказал, что это не проблема, потому что у меня нет другой проблемы с моим языком в powershell ISE или консоли ... – jumbo