Ungültige UTF-8-middle-byte 0x72
Bin ich mit dem JsonSerializer und JsonDeserializer im Frühjahr-kafka, um den Wert serializer beim erzeugen einer Nachricht.
Die Nachricht hat ein Feld(orgName)mit einem speziellen Zeichen (Deutsche Umlaute).Wie gehe ich mit diesen besonderen Charakter? Ich weiß JsonDeserializer verwendet jackson und jackson unterstützt utf-8.
Die JsonDeserializer wirft diesen Fehler, weil es:
Caused by: com.fasterxml.jackson.databind.JsonMappingException: Invalid UTF-8 middle byte 0x72
at [Source: [B@403d4534; line: 1, column: 128]
at [Source: [B@403d4534; line: 1, column: 116] (through reference chain: com.abc-company.kafka.JobRequest["orgName"])
at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:388) ~[jackson-databind-2.8.5.jar:2.8.5]
at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:348) ~[jackson-databind-2.8.5.jar:2.8.5]
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.wrapAndThrow(BeanDeserializerBase.java:1599) ~[jackson-databind-2.8.5.jar:2.8.5]
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:359) ~[jackson-databind-2.8.5.jar:2.8.5]
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:148) ~[jackson-databind-2.8.5.jar:2.8.5]
at com.fasterxml.jackson.databind.ObjectReader._bindAndClose(ObjectReader.java:1626) ~[jackson-databind-2.8.5.jar:2.8.5]
at com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:1237) ~[jackson-databind-2.8.5.jar:2.8.5]
at org.springframework.kafka.support.serializer.JsonDeserializer.deserialize(JsonDeserializer.java:86) ~[spring-kafka-1.1.2.RELEASE.jar:na]
Möglich, Duplikat der jackson JsonParseException: Ungültige UTF-8-middle-byte
InformationsquelleAutor Joanita Dsouza | 2017-04-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stellen Sie sicher, starten Sie die JVM mit -Dfile.encoding=UTF-8. Sie JVM standardmäßig den Zeichensatz des Betriebssystems
Hier mein tutorial, wie zu tun, dass!
InformationsquelleAutor the dude
Ihre Deserializer verwendet UTF-8, aber Ihr Serializer verwendet eine andere Codierung, beispielsweise ISO 8859-1. Um dieses problem zu lösen, müssen Sie die Codierung der Serializer auf UTF-8.
Für eine Erklärung, warum dieser Fehler Auftritt, finden Sie diese Antwort zu einer ähnlichen Frage.
InformationsquelleAutor weibeld