Wie gehe ich mit Zeichen um, die UTF-8 in XML benötigen, das von HTTP GET auf Powershell abgerufen wurde?

Wie gehe ich mit Zeichen um, die UTF-8 in XML benötigen, das von HTTP GET auf Powershell abgerufen wurde?

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 &amp; 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

verwandte Informationen