2010-09-28 3 views
0

Недавно я слежу за онлайн-руководством Sun по API Java Mail для отправки электронной почты, загрузки электронной почты и загрузки приложения. Когда доходит до извлечения вложения из электронной почты, мой код очень похож на этот пост Download attachments using Java Mailjava Mail API, получающий вложение электронной почты с вьетнамскими символами

Однако я сталкиваюсь с проблемой, когда пользователь отправить имя файла вложения электронной почты с вьетнамским характером, что-то вроде этого: он Thống Thong. XLS

Когда код пытается получить имя файла с: bodyPart.getFileName(), имя возвращения файла, как это: ч? го нг = изо-8859-1 б dGj0bmcueGxz =

меня попробовать следующее, но без удачи

1) установить Java VM параметр:??? -Dfile.encoding = UTF-8

2) попытаться дальше смотреть в API Java почты на UTF-8 символов поддержки, но не могу найти какой-либо

Любой намек поможет. Спасибо!

ответ

1

ISO-8859-1 - набор символов Latin-1. Сюда входят только западноевропейские персонажи. Так что это может быть намек. Может быть, проблема в том, что клиент отправляет вложение? Взгляните на исходный источник сообщения, проверьте, не сообщается ли какой-либо из заголовков о текстовом кодировании.

+0

Есть ли способ, чтобы установить JavaMail части тела распознавать UTF- 8? – Reusable

+0

Если сообщение правильно закодировано в UTF-8, то JavaMail должен обрабатывать его автоматически. Моей точкой было, может быть, сообщение на самом деле не кодируется в UTF-8. –

+0

Я вижу ... Почтовый клиент, который я вижу из одного из заголовков, показывает, что он не является обычным почтовым клиентом. Когда я пытаюсь подключить тот же файл с почтовым клиентом Outlook, программа может получить имя файла правильно. Спасибо! – Reusable

3

Вы можете использовать MimeUtility.decodeWord (bodyPart.getFileName()), чтобы получить фактическое имя файла.

Поскольку почтовые заголовки могут содержать только ASCII-символы, RFC 2047 описывает, как кодировать другие наборы символов, и этот метод декодирует имя, как указано в RFC 2047.

Смежные вопросы