0

我有一个问题……一个非常奇特的问题,请你指导一下。

原始消息:Kevätsunnuntaisin lentää

数据流向是 HttpConnector -> WSDLConnector -> 到底层系统

以下是前7个字符的编码

4b 65 76 c3 a4 74 73 75 - 在 Http 连接器中 - 请求 XML 具有 UTF-8 编码

4b 65 76 a3 74 73 75 - 在 WSDL 连接器中 -

InputSource inputSource = new InputSource(myInputStream);
inputSource.setEncoding("UTF-8");

parser.parse(inputSource);

原始字符串被转换为 Kev£tsunnuntaisin lent££。此外,还有一个字节的丢失。

你能指导我哪里出错了吗?我必须怎么做才能避免这种字符转换?

谢谢你的帮助!!!

4

1 回答 1

1

这很简单:myInputStream 中的数据没有编码为 UTF-8,因此解码失败。

我的猜测是您将 HTML 连接器的输出保存为字符串,然后将其用作 WSDL 连接器的输入。在字符串中,数据是 unicode,而不是 UTF-8。用于String.getBytes('UTF-8')获取具有正确编码的字节数组。

至于所有编码问题:总是告诉计算机它应该使用哪种编码,而不是希望它会正确猜测。字节没有编码,计算机也不是心灵感应的 :) 我希望它永远不会......

于 2009-04-09T10:39:48.037 回答