HTTP-Ausgangsadapter erhält augenscheinlich falsches Encoding im Response

  • Beitrag
    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)
    • Antworten
      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.