HTTP-Ausgangsadapter erhält augenscheinlich falsches Encoding im Response

  • Post
    rberger
    Administrator
    Folgende Frage wurde uns auf anderem Wege gestellt, soll aber alle unseren Community-Mitgliedern weiterhelfen:

    Bei Verwendung des HTTP-Adapters in ausgehender Richtung mit dem Verbindungstyp Basic Auth habe ich den Effekt, dass ich ein XML mit kaputtem Encoding erhalte. Statt ä erhalte ich beispielsweise „ä“, was darauf hindeutet, dass die Daten eigentlich UTF-8 sind, aber als ISO-8859-1 interpretiert werden. Wenn ich den Konverter XML->Anhang verwende und dort „ISO-8859-1“ als Zeichensatz angebe, sieht der Anhang korrekt aus. Allerdings konnte ich den Anhang nicht in UTF-8 wandeln, das Encoding blieb defekt.
    
    Im core_jcl.log habe ich gesehen, dass die die http-Antwort mit „4D5“ beginnt:
    2020-12-09 11:22:12.689 [DEBUG] [org.apache.http.impl.conn.DefaultClientConnection] Receiving response: HTTP/1.1 200 OK
    2020-12-09 11:22:12.689 [DEBUG] [org.apache.http.headers] << HTTP/1.1 200 OK
    2020-12-09 11:22:12.689 [DEBUG] [org.apache.http.headers] << date: Wed, 09 Dec 2020 11:22:10 GMT
    2020-12-09 11:22:12.689 [DEBUG] [org.apache.http.headers] << server: Apache
    2020-12-09 11:22:12.689 [DEBUG] [org.apache.http.headers] << vary: Accept-Encoding
    2020-12-09 11:22:12.689 [DEBUG] [org.apache.http.headers] << content-type: application/json
    2020-12-09 11:22:12.689 [DEBUG] [org.apache.http.headers] << transfer-encoding: chunked
    2020-12-09 11:22:12.690 [DEBUG] [org.apache.http.wire] << "4D5[\r][\n]"
    2020-12-09 11:22:12.690 [DEBUG] [org.apache.http.wire] << "{"Auftraege":[{"Auftrag":{"Auftragsnummer":""," …
    
    Im Postman wird die http-Antwort korrekt interpretiert.
    Könnten Sie mir mitteilen, wo ich welche Encodings angeben muss, damit auch im Transconnect die Umlaute korrekt ankommen?

    0
    0
Ansicht von 1 Antwort (von insgesamt 1)
  • Replies
    rberger
    Administrator
    Das Problem ist der “content-type: application/json” ohne Angabe eines Encodings in der Antwort des Services. Standard nach HTTP ISO ist Encoding ISO-8859-1.
    Sehr oft wird bei JSON-Antworten grundsätzlich UTF-8 genutzt. Das wird im Netz ausführlich diskutiert.
    Seit der Version 2.3.4.14812 gibt es eine Erweiterung des Adapters, damit das Default-Encoding des Responses geändert werden kann.

    0
    0
Ansicht von 1 Antwort (von insgesamt 1)
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.