SAXParseException:3字节UTF-8序列的无效字节2

时间:2018-12-11 15:43:13

标签: character-encoding schema resteasy saxparseexception wildfly-13

我有一个非常奇怪的错误(消息是:org.xml.sax.SAXParseException Invalid byte 2 of 3-byte UTF-8 sequence.)我得到此错误的位置是第一个出现问题的字符(在我的情况下为“é”)出现的位置。我正在尝试使用javax xml和验证器工具解析xml文件。我使用两个相互通信的Wildfly服务器,发送和接收xml文件。问题是,每当我收到响应文件时,编码都会出现问题。我使用String而不是InputStream来读取我的响应实体的原因是,因为我想多次使用响应主体,并且以后不想使用IOUtils。

Response response = webTarget.request()
            .post(Entity.entity(xmlBody, MediaType.APPLICATION_XML));
String responseBody = response.readEntity(String.class);

如果我在此处使用System.out.println(responseBody),则接收到的xml中的字符(á,ű,é,ő,ú,ö,ü,í)将显示为非UTF-8字符。我的示例xml,发件人请求和日志控制台编码均设置为UTF-8,因此这可能不是问题。我认为可能有两件事会导致此问题:

  • 野生蝇通信以某种方式破坏了消息编码
  • 我也必须在接收点设置编码。像(response.setEnc(encoding))

有趣的事实:当我尝试调试自己的东西时,即使System.out打印格式错误的字符,文件组件也是正确的。

0 个答案:

没有答案