JSON parse error - utf-8 codec can not decode byte 0xfc in position 71 invalid start byte
Hallo Kollegen,
ich lese eine XML Datei ein und lege dann via REST API PUT Regest mit einem JSON einen Datensatz an.
Die XML Dateien lese ich so ein:
Beim API Reqest:
bekomme ich dann die Fehlermeldung:
Das JSON sieht so aus:
und ja, ich weiß, dass das 'ü' das Problem ist.
Wie kann ich das korrigieren?
Bin jetzt schon über 1,5Tag dran und habe x Foren- und Blogeinträge gelesen und getestet.
Alles bisher negativ.
Wäre schön wenn mir jemand einen Hinweis geben könnte.
Grüße vom it-frosch
ich lese eine XML Datei ein und lege dann via REST API PUT Regest mit einem JSON einen Datensatz an.
Die XML Dateien lese ich so ein:
$xml = [xml](Get-Content .\datei.xml -Encoding utf8)
Beim API Reqest:
$Token = "XXXXXXXXXXXXXXXX"
$url = "https://api.site/"
$content = "application/json"
$method = "POST"
$Data = @{
"name"="$($d.NAME)"
"costCenter"="$($d.wert1)"
"legalEntity"="$($d.wert2)"
}
$JsonBody = $Data | ConvertTo-Json
# Fehlerprüfung
Write-Log -text "< - Die Fehlerbehandlung wird gestartet."
try {
$response2 = Invoke-RestMethod -Uri $url -Method $method -Headers @{"Authorization" = "Bearer $Token"} -ContentType $content -Body $JsonBody
}
bekomme ich dann die Fehlermeldung:
WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand - {"type":"clientError","errors":[{"code":"parseError","detail":"JSON parse error - 'utf-8' codec can't decode byte 0xfc in position 60: invalid start byte","attr":null}]} wurde abgefangen.
Das JSON sieht so aus:
{
"wert1": "111-1111111111",
"name": "111-1111111111-Süd - TEST - TEST",
"wert2": "2deeb8ee-d760-40c4-9248-f7088a58bf2e"
}
und ja, ich weiß, dass das 'ü' das Problem ist.
Wie kann ich das korrigieren?
Bin jetzt schon über 1,5Tag dran und habe x Foren- und Blogeinträge gelesen und getestet.
Alles bisher negativ.
Wäre schön wenn mir jemand einen Hinweis geben könnte.
Grüße vom it-frosch
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 9918667320
Url: https://administrator.de/contentid/9918667320
Ausgedruckt am: 03.12.2024 um 17:12 Uhr
2 Kommentare
Neuester Kommentar
Setz mal explizit den Content-Type mit charset im Header und lass den Parameter -ContentType weg.
Woher kommt $d?
Akzeptiert die uns unbekannte API denn überhaupt Umlaute in den Daten? => Doku dazu lesen.
Gruß pp
-Headers @{"Authorization" = "Bearer $Token"; "Content-Type" = "application/json; charset=UTF-8"}
Woher kommt $d?
Akzeptiert die uns unbekannte API denn überhaupt Umlaute in den Daten? => Doku dazu lesen.
Gruß pp