Джексон ObjectMapper с кодировкой UTF-8?
Есть ли способ сказать Джексону использовать кодировку UTF-8 при использовании ObjectMapper
сериализовать и десериализовать объекты?
1 ответ
Джексон автоматически определяет кодировку, используемую в источнике: в соответствии со спецификацией JSON допустимыми являются только кодировки UTF-8, UTF-16 и UTF-32. Никакие другие кодировки (например, Latin-1) не могут быть использованы. Из-за этого автоматическое обнаружение легко и выполняется парсером - по этой причине не допускается обнаружение кодировки. Таким образом, если ввод UTF-8, он будет обнаружен как таковой.
Для вывода по умолчанию используется UTF-8; но если вы явно хотите использовать другую кодировку, вы можете создать JsonGenerator
явно (с помощью метода, который принимает JsonEncoding
) и передать это ObjectMapper
,
В обоих случаях вы можете, конечно, вручную построить java.io.Reader
/ java.io.Writer
и заставьте его использовать любую кодировку, какую захотите.