0

メールクライアントを作成しています。ブラックベリーサーバーからメールを受信すると、ファイル名が「=?utf-8?B?anBlZ2F0dGFjaG1lbnQuSlBFRw ==?=」として送信されますが、元のファイル名は「jpegattachment.JPEG」でした。他のメールサーバーから受信したときのプレーンテキスト。したがって、ここでの私の問題は、エンコードされている場合とされていない場合がある文字列を取得できることです。

文字列のエンコードを取得してプレーンテキストにデコードする方法はありますか?

入力文字列が「=?utf-8?B?anBlZ2F0dGFjaG1lbnQuSlBFRw ==?=」であるか、「jpegattachment.JPEG」出力が「jpegattachment.JPEG」である必要があります。

何か案が??

4

2 に答える 2

1

はい、これanBlZ2F0dGFjaG1lbnQuSlBFRw==は:base64でエンコードされてjpegattachment.JPEGいます。したがって、base64でデコードするだけです。

ここでどのように答えましたか: JavaでBase64データをデコードします

于 2010-01-22T09:52:10.977 に答える
1

これはMIMEエンコードされています。Base64が最も人気がありますが、Quoted-printable、binaryなどの他のエンコーディングを使用する場合があります。したがって、これをデコードするには既存のライブラリを使用する必要があります。すべてのメールプログラムにはデコーダーが組み込まれています。

decodeWord()Javaメールから使用できます。

http://java.sun.com/products/javamail/javadocs/javax/mail/internet/MimeUtility.html#decodeWord(java.lang.String)

deocdeText()プレーンテキストをそのままにしておきたい場合は試してください。

于 2010-01-22T18:19:09.953 に答える