Ich kann über eine HTTP-GET-Anfrage in Powershell keine Daten mit UTF-8-Kodierung abrufen.
Code:
$headers_tables=@{}
$headers_tables.Add("content-type", "application/xml; charset=utf-8")
$xml_employee_future_jobinfo = Invoke-WebRequest -Uri $url_employee_future_jobinfo -Method GET -Headers $headers_tables
Ausgabe:
<?xml version="1.0"?>
<table>
<row id="2968" employeeId="839">
<field id="date">2022-11-28</field>
<field id="location">X</field>
<field id="department">D</field>
<field id="division">Infrastructure & IT</field>
<field id="jobTitle">Z</field>
<field id="reportsTo">X Poli??ski</field>
</row>
</table>
Wenn ich diesen API-Link in einem Browser öffne, kann ich das XML wie erwartet mit Sonderzeichen und Akzenten sehen.
Wie kann ich das lösen?
Vielen Dank im Voraus!
Antwort1
Ich habe folgende Möglichkeit gefunden, dieses XML zu verarbeiten, es in eine Datei zu exportieren und es unter UTF-8 zu lesen:
$headers_tables=@{}
Invoke-WebRequest -Uri $url_employee_future_jobinfo -Method GET -Headers $headers_tables -OutFile "C:\Scripts\Power_Automate\xmldump_jobinfo.xml"
[xml]$xml_employee_future_jobinfo = get-content "C:\Scripts\Power_Automate\xmldump_jobinfo.xml" -Encoding "utf8"
Write-Host "XML: "
$xml_employee_future_jobinfo.table.row.field
Ausgabe:
id #text
-- -----
date 2022-11-28
location X
department D
division Infrastructure & IT
jobTitle Z
reportsTo X Poliński