Пример

public static void main(String[] args){
MimeMessage mm = new MimeMessage(Session
.getInstance(new java.util.Properties()));
try {
mm.setSubject(args[0]);
byte[] description = mm.getSubject().getBytes();
java.io.FileOutputStream out = new java.io.FileOutputStream(
"Rule.html", true); //$NON-NLS-1$
out.write(description);
} catch (Exception e) {
System.out.println(e.toString());
}
}
Решение
Используем
javax.mail.internet.MimeBodyPart.setSubject (java.lang.String, java.lang.String)
Данная строка Unicode кодируется с использованием указанного набора символов.
Обратите внимание, что в последней должны содержаться коды для всех символов строки.
Если язык строки неизвестен, используем UTF-8.

public static void main(String[] args){
String subject = args[0];
String charset = args[1];
javax.mail.internet.MimeMessage mm = new javax.mail.internet.MimeMessage(
java.mail.Session.getInstance(new java.util.Properties()));

try {
mm.setSubject(subject, charset);
byte[] description = mm.getSubject().getBytes("UTF-8"); //$NON-NLS-1$
java.io.FileOutputStream out = new java.io.FileOutputStream(
"Rule183-2.html", true); //$NON-NLS-1$
out.write(description);
} catch (Exception e) {
System.out.println(e.toString());
}

}