48

有没有办法告诉杰克逊在序列化和反序列化对象时使用 UTF-8 编码ObjectMapper

4

1 回答 1

61

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

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

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

于 2012-04-04T17:14:07.693 回答