有没有办法告诉杰克逊在序列化和反序列化对象时使用 UTF-8 编码ObjectMapper
?
问问题
84885 次
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 回答