Расшифровка имени файла вложения электронной почты Mail.app в Java

У меня проблема с расшифровкой имени файла вложения электронной почты. В настоящее время я использую JavaMail 1.4.2. Имя файла "Żółw.rtf" "(это совершенство для Turtle.rtf). Почта отправляется с использованием Mail.app (что кажется весьма важным). Важными заголовками являются:

--Apple-Mail-19-721116558
Content-Disposition: attachment;
   filename*=utf-8''Z%CC%87o%CC%81%C5%82w.rtf
Content-Type: text/rtf;
   x-unix-mode=0644;
   name="=?utf-8?Q?Z=CC=87o=CC=81=C5=82w=2Ertf?="
Content-Transfer-Encoding: 7bit

Соответствующий javax.mail.Part.getFileName () возвращает" =? utf-8? Q? Z = CC = 87o = CC = 81 = C5 = 82w = 2Ertf? = ", который после применения MimeUtility.decodeText будет: «ZÃáoÃÅ≈Çw.rtf». Ясно, что не оригинал :).

Для сравнения, MimeUtility.encodeText возвращает:

=?UTF-8?Q?=C5=BB=C3=B3=C5=82w.rtf?=

в отличие от:

=?utf-8?Q?Z=CC=87o=CC=81=C5=82w=2Ertf?=

, полученного по электронной почте.

Согласно моим исследованиям, буква «Ż» может быть кодируется двумя способами: одной буквой или буквой «Z» + точка над ним. MimeUtility.encodeText использует первое, Mail.app - второе.

Однако я хочу иметь возможность декодировать оба. Есть ли способ декодировать имя файла при отправке из Mail.app с помощью JavaMail? А может есть какая-то другая библиотека?

Спасибо! можно закодировать двумя способами: одной буквой или буквой «Z» + точкой над ним. MimeUtility.encodeText использует первое, Mail.app - второе.

Однако я хочу иметь возможность декодировать оба. Есть ли способ декодировать имя файла при отправке из Mail.app с помощью JavaMail? А может есть какая-то другая библиотека?

Спасибо! может быть закодирован двумя способами: одной буквой или буквой "Z" + точка над ним. MimeUtility.encodeText использует первое, Mail.app - второе.

Однако я хочу иметь возможность декодировать оба. Есть ли способ декодировать имя файла при отправке из Mail.app с помощью JavaMail? А может есть какая-то другая библиотека?

Спасибо! Адам

7
задан adamw 20 April 2011 в 11:53
поделиться