SAXParser中的字符转换

时间:2009-04-08 04:45:03

标签: character saxparser

我有一个问题......你可以指导一个非常特别的问题。

原始信息:Kevätsunnuntaisinlenää

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

以下是前7个字符的编码

4b 65 76 c3 a4 74 73 75 - 在Http Connector中 - 请求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借给£。还有一个字节丢失。

你能指导我出错的地方吗?我该怎么做才能避免这种角色转换?

感谢您的帮助!!!

1 个答案:

答案 0 :(得分:1)

这非常简单:myInputStream中的数据未编码为UTF-8,因此解码失败。

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

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