Jackson ObjectMapper采用UTF-8编码?

时间:2012-04-04 02:37:30

标签: json jackson

使用ObjectMapper序列化和反序列化对象时,有没有办法告诉Jackson使用UTF-8编码?

1 个答案:

答案 0 :(得分:42)

Jackson自动检测源中使用的编码:根据JSON规范,只有有效编码为UTF-8,UTF-16和UTF-32。不能使用其他编码(如Latin-1)。 因此,自动检测很容易并且由解析器完成 - 因此没有接受编码检测。 因此,如果输入为UTF-8,则会被检测到。

对于输出,UTF-8是默认值;但是,如果您明确要使用其他编码,则可以显式创建JsonGenerator(使用JsonEncoding的方法),并将其传递给ObjectMapper

或者在这两种情况下,您当然可以手动构建java.io.Reader / java.io.Writer,并使其使用您想要的任何编码。