私は、間違ってエンコードされた (または破損した) 文字列 ( ) を提供している外部 Web サービスを扱っていUTF-8ます。素敵なA帽子()がたくさんあります。ISO LATINWINDOWS-1252UTF-8Â
外部 Web サービスが文字列を保存する方法を明らかに修正できないため、情報が失われます。したがって、私が知っている 100% の翻訳を期待することは不可能です。
しかし、誰かがヒューリスティックな文字マッピング ライブラリを Java で作成したことを期待していました (誰かが A ハットを入力する可能性は低いです)。
そうでない場合は、この人の PHP コードを移植できると思います: https://stackoverflow.com/a/3521340/318174
更新と説明: @VGR のような単純な変換は機能しません。元のバイトがありません。エンドポイントでデータが正しく変換されませんでした (SOAP サーバーgetBytes(/*with out correct encoding*/)が完了したか、データが正しくない形式で保存されている可能性があります)。Java でバイトを文字列に逆変換すると、エンコーディングがどこでも同じでない限り、データは保持されません。ASCIIこれは<->のようなものを考えてみるとわかりやすいですUTF-8。データが失われることはありませんが、混乱することが多いため、Windows-1252またはISO Latinそれははるかに複雑です。これは、これらのエンコーディングが 2 バイトである可能性があり、のサブセットではないためですUTF-8。
信じられない場合はgetBytes()、さまざまなエンコーディングを試してみると、データの破損やデータの損失が見られます。