- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:JavaのBase64デコードで正しく復元できない)
JavaのBase64デコードで正しく復元できない
このQ&Aのポイント
- クライアント(Flex/ActionScript)でビットマップ画像をバイト配列化して、Base64エンコードして、文字列生成
- サーバー(Tomcat/Java)側で文字列をBase64デコードしてバイト配列化し、ファイルに保存
- 保存した画像が正しく表示されず、Apache CommonsのBase64デコーダーとSun.miscのBase64デコーダーで異なる問題が発生
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> 1.クライアント(Flex/ActionScript)でビットマップ画像をバイト配列化して、Base64エンコードして、文字列生成 何かスタンドアローンのツールを使って、この文字列からをデコードしたら、元のファイルになりますか? > 3.サーバー(Tomcat/Java)側で文字列取得 サーバーで受信した文字列は、クライアントから送信された文字列と等しいですか? 文字コードが違っていて化けたりしませんか? > 4.文字列をBase64デコードしてバイト配列化 1で生成した文字列を、通信を介在しないで、直接CommonsのBase64クラスでデコードしたら、 元のファイルに復元されますか? > 5.バイト配列をファイルに書き込む(保存) バイナリで保存してますか?文字列として保存してしまって、文字コードの影響を受けていませんか?
お礼
satomi3951さま、ご回答をありがとうございます。 おかげさまで解決しました。 それぞれ確認してみたところ、、、 > 3.サーバー(Tomcat/Java)側で文字列取得 の部分でクライアントからサーバーに送られた文字列が違っていました。(具体的には"+"が空白に変わっていた) 長さしかチェックしてませんでした・・・。 空白を+に戻してみたところ、期待する結果を得られました。