[英]Java mail encoding non english characters
使用下面的代碼,我可以發送一封非英語的電子郵件,雖然主題正確顯示,但正文顯示為亂碼。
有任何想法嗎?
謝謝
public void postMail(String recipient, String subject, String message, String from) throws MessagingException, UnsupportedEncodingException {
//Set the host smtp address
Properties props = new Properties();
props.put("mail.smtp.host", "mail.infodim.gr");
// create some properties and get the default Session
Session session = Session.getDefaultInstance(props, null);
// create a message
Message msg = new MimeMessage(session);
// set the from and to address
InternetAddress addressFrom = new InternetAddress(from);
msg.setFrom(addressFrom);
InternetAddress addressTo=new InternetAddress(recipient);
msg.setRecipient(Message.RecipientType.TO, addressTo);
// Setting the Subject and Content Type
msg.setSubject(subject);
msg.setContent(message, "text/plain");
Transport.send(msg);
}
嘗試:
msg.setContent(message, "text/plain; charset=UTF-8");
編輯已更改為text/plain
。
代替
msg.setContent(message, "text/plain");
我會寫的
Multipart mp = new MimeMultipart();
MimeBodyPart mbp = new MimeBodyPart();
mbp.setContent(message, "text/plain; charset=ISO-8859-7");
mp.addBodyPart(mbp);
msg.setContent(mp);
我從你的名字中猜到了ISO-8859-7
,因為這個charset是希臘語,但也許你可以更恰當地選擇它。 或者也許UTF-8
適用於您的情況。
如果沒有其他幫助,請嘗試將源文件(包括.java文件)的編碼更改為UTF8。 在Eclipse中,它通過Window - > Preferences - > General - > Workspace:Text file encoding完成,我將CP1252作為文本文件的默認值。
我從.properties文件中獲取文本。 將它們更改為UTF8並沒有幫助。 這很瘋狂,但將我的.java文件切換為UTF8解決了我的問題!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.