我有一个问题......你可以指导一个非常特别的问题。
原始信息: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借给£。还有一个字节丢失。
你能指导我出错的地方吗?我该怎么做才能避免这种角色转换?
感谢您的帮助!!!
答案 0 :(得分:1)
这非常简单:myInputStream中的数据未编码为UTF-8,因此解码失败。
我的猜测是您将HTML连接器的输出保存为字符串,然后将其用作WSDL连接器的输入。在字符串中,数据是unicode,而不是UTF-8。使用String.getBytes('UTF-8')
获取具有正确编码的字节数组。
至于所有编码问题:总是告诉计算机它应该使用哪种编码,而不是希望它能正确猜测。字节没有编码,计算机也不是心灵感应:)我希望它永远不会......