【问题标题】:Character conversion in SAXParserSAXParser 中的字符转换
【发布时间】:2009-04-08 04:45:03
【问题描述】:

我有一个问题......请您指导一个非常奇怪的问题。

原始消息: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££。此外,还有一个字节的丢失。

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

感谢您的帮助!!!

【问题讨论】:

    标签: character saxparser


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2013-04-18
      • 2015-02-16
      • 2011-08-23
      • 2011-06-18
      • 2012-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-14
      相关资源
      最近更新 更多