• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:JavaのBase64デコードで正しく復元できない)

JavaのBase64デコードで正しく復元できない

このQ&Aのポイント
  • クライアント(Flex/ActionScript)でビットマップ画像をバイト配列化して、Base64エンコードして、文字列生成
  • サーバー(Tomcat/Java)側で文字列をBase64デコードしてバイト配列化し、ファイルに保存
  • 保存した画像が正しく表示されず、Apache CommonsのBase64デコーダーとSun.miscのBase64デコーダーで異なる問題が発生

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

> 1.クライアント(Flex/ActionScript)でビットマップ画像をバイト配列化して、Base64エンコードして、文字列生成 何かスタンドアローンのツールを使って、この文字列からをデコードしたら、元のファイルになりますか? > 3.サーバー(Tomcat/Java)側で文字列取得 サーバーで受信した文字列は、クライアントから送信された文字列と等しいですか? 文字コードが違っていて化けたりしませんか? > 4.文字列をBase64デコードしてバイト配列化 1で生成した文字列を、通信を介在しないで、直接CommonsのBase64クラスでデコードしたら、 元のファイルに復元されますか? > 5.バイト配列をファイルに書き込む(保存) バイナリで保存してますか?文字列として保存してしまって、文字コードの影響を受けていませんか?

gomapanda
質問者

お礼

satomi3951さま、ご回答をありがとうございます。 おかげさまで解決しました。 それぞれ確認してみたところ、、、 > 3.サーバー(Tomcat/Java)側で文字列取得 の部分でクライアントからサーバーに送られた文字列が違っていました。(具体的には"+"が空白に変わっていた) 長さしかチェックしてませんでした・・・。 空白を+に戻してみたところ、期待する結果を得られました。

関連するQ&A

専門家に質問してみよう