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££ に変換されます。また、1 バイトが失われます。

どこが間違っているのか教えてください。この文字変換を回避するにはどうすればよいですか?

ご協力いただきありがとうございます!!!

4

1 に答える 1

1

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

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

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

于 2009-04-09T10:39:48.037 に答える