Troubles with German Umlaute ä ö ü ß

I have problems with German Umlaute ä ü ö ß.
I send a json logmessage from IBMi (AS400) to logstash encoded in ISO8859-1. It is not possible to send them in UTF-8. So I tried to set

input {
  http {
    host => "0.0.0.0"
    port => 8080
    codec => json { charset => "ISO8859-1"}
  }
}

This results in either

test � � � � test; for content_type: text/xml

or

test ? ? ? ? test; for content_type: application/json

I know that Json input is automatically decoded as UTF-8, that's why I have tried text/xml.
Wireshark "receives" the message as
0050568608371c98ece12d7f08004500005d3f5a40003f06e040ac1001100a1464cc52c41f906ad181ddf3d47aa05018800016ed00007b2274797065223a22756e6b6e6f776e696e646578222c226d657373616765223a227465737420e420f620fc20df2074657374227d
So e.g. ä is sent as E4

Can somebody please help me?

If the content type is application/json then by default the additional_codecs option overrides the codec option and uses a json codec with no charset option. I do not know of you can supply options to a codec in additional_codecs. If not, you could set additional codecs to {} to force it to use the codec option with the charset.