2017-04-14 6 views
1

私はspring-kafkaでJsonSerializerとJsonDeserializerを使用して、メッセージを生成する際に値シリアライザを設定しています。 メッセージに特殊文字(ドイツ語のウムラウト)を含む1つのフィールド(orgName)があります。この特殊文字はどのように扱いますか?私はJsonDeserializerがjacksonを使用し、jacksonがutf-8をサポートしていることを知っています。 [ソースで無効なUTF-8ミドルバイト0x72 :com.fasterxml.jackson.databind.JsonMappingException:によって引き起こさ無効なUTF-8中間バイト0x72

: JsonDeserializerはそれのために、このエラーがスロー403d4534 @ [B;行:1、列:128] [出典:[B @ 403d4534; (JsonMappingException.java:388)〜[:1、列:116] 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.jack (ObjectReader.java:1237)でのson.databind.ObjectReader._bindAndClose(ObjectReader.java:1626)〜[jackson-databind-2.8.5.jar:2.8.5] at com.fasterxml.jackson.databind.ObjectReader.readValue 〜[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]

答えて

0

デシリアライザはUTF-8を使用しますが、シリアライザは別のエンコーディング(ISO 8859-1など)を使用します。この問題を解決するには、シリアライザのエンコーディングをUTF-8に設定する必要があります。

このエラーが発生する理由については、同様の質問のthis answerを参照してください。

関連する問題