Java 如何在Jackson中显式更改编码?

Java 如何在Jackson中显式更改编码?,java,jackson,Java,Jackson,我正在使用Jackson将json文件映射到java对象,json文件中有一个元素包含字符É,我得到以下错误: Caused by: com.fasterxml.jackson.core.JsonParseException: Invalid UTF-8 middle byte 0x41 at [Source: (File); line: 129, column: 35] at com.fasterxml.jackson.core.JsonParser._constructError(

我正在使用
Jackson
将json文件映射到java对象,json文件中有一个元素包含字符
É
,我得到以下错误:

Caused by: com.fasterxml.jackson.core.JsonParseException: Invalid UTF-8 middle byte 0x41
 at [Source: (File); line: 129, column: 35]
    at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1804) 
那么,有没有办法将
objectMapper
的默认编码从
utf-8
更改为
utf-32


谢谢

Jackson会自动从标头检测编码UTF-32 UTF-16 UTF-8,更改服务器以使用
内容类型发送编码:application/json;charset=utf-32
或者,如果它是一个文件,它会从它的第一个字节检测它

您的问题是编码不是在UTF-32中完成的。在这种情况下,如果您的编码是ISO-8859-1,则需要像这样对其进行清理

URL url = Thread.currentThread().getContextClassLoader().getResource("tourneeCollecteRawOutputCalculIndicateur.json");
File file = new File(url.getPath());
InputStream in = new FileInputStream(file)
Reader r = new InputStreamReader(in, StandardCharset.ISO_8859_1);
TourneeCollecteRawOutput tourneeCollecteRawOutput = mapper.readValue(in, mapper.getTypeFactory().constructCollectionType(List.class, TourneeCollecteRawOutput.class));

我不能使用Reader对象,我在调用微服务时得到json文件。然后检查微服务的标题,它是否发送内容的内容类型:application/json;charset=utf-32'更正来自MicroService的编码我无权访问itLet us。