2009-04-08 8 views
0

私は問題があります...非常に独特なものをご案内してください。SAXParserでの文字変換

オリジナルメッセージ: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); 

元の文字列は、ケンブリッジンに変換されます。また、バイトが失われています。

私が間違っているところを案内してください。この文字変換を避けるために私は何をしなければならないのですか?

ありがとうございました!

答えて

1

これは非常に簡単です。myInputStreamのデータはUTF-8としてエンコードされていないため、デコードに失敗します。

私の推測では、HTMLコネクタの出力を文字列として保存し、それをWSDLコネクタの入力として使用すると思います。文字列では、データはUTF-8ではなく、Unicodeです。 String.getBytes('UTF-8')を使用して、正しいエンコーディングでバイト配列を取得します。

すべてのエンコードの問題について:正しく推測されることを期待するのではなく、どのエンコードが機能するかをコンピュータに常に伝えます。バイトにはエンコーディングはありません。コンピュータはテレパシーではありません:)そして、私は決してそうなることを望みません。