回答
主題是一個頭。標題只使用ascii-7,所以要正確地編碼沒有ascii-7字符,你應該使用正確的編碼。
如果您正在使用的類允許您使用UTF-8指示某些編碼嘗試。
mimeMessage.setSubject(yourSubject, "UTF-8");
如果你手寫的標題使用任何的這個:
MimeUtility.encodeWord(yourSubject, "UTF-8", "B"); // base-64
MimeUtility.encodeWord(yourSubject, "UTF-8", "Q"); // quoted-printable
這或多或少什麼的MimeMessage確實在SETSUBJECT(STR,編碼):
setHeader("Subject", MimeUtility.fold(9, MimeUtility.encodeText(subject, charset, null)));
// fold splits the value in several lines with no more than 72 chars
樣本
我試過這個:
public static void main(String[] args) throws Exception {
// manual encoding
System.out.println(MimeUtility.encodeText("How to include £ pound symbol", "UTF-8", "Q"));
System.out.println(MimeUtility.encodeText("How to include £ pound symbol", "UTF-8", "B"));
// MimeMessage encoding
MimeMessage m = new MimeMessage((Session) null);
m.setSubject("How to include £ pound symbol", "UTF-8");
m.setContent("lalala", "text/plain");
m.writeTo(System.out);
}
輸出功率爲:
=?UTF-8?Q?How_to_include_=C2=A3_pound_symbol?=
=?UTF-8?B?SG93IHRvIGluY2x1ZGUgwqMgcG91bmQgc3ltYm9s?=
(...)
Message-ID: <[email protected]>
Subject: =?UTF-8?Q?How_to_include_=C2=A3_pound_symbol?=
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
lalala
反正你總是可以使用:
String yourEncodedString = MimeUtility.encodeText(str, "UTF-8", "Q");
mimeMessage.setHeader("Subject", yourEncodedString);
設置你的編碼設置爲UTF-8 ..
msg.setContent(message,"text/html; charset=UTF-8");
這表明該MIME部分(主要內容)的主體的編碼,但它不涉及到標題編碼(主題在哪裏)。我不確定Message的實現是否也使用這種編碼來正確編碼標題(特別是如果他們需要自己奇怪的編碼) – helios
這會影響主題行嗎? –
啊,太慢了。已經在 –
- 1. Jinja2英鎊符號£
- 2. 英鎊符號(#)在PHP
- 3. 從ASP.NET字符串中消失的英鎊符號(英鎊)
- 4. 英鎊符號PHP的fopen
- 5. 嵌套的英鎊符號問題
- 6. 英鎊符號不顯示在Wordpress中
- 7. 英鎊符號不使用java.mail包在郵件內容中工作?
- 8. 通過PHP發送電子郵件,英鎊符號
- 9. Oracle用英鎊代替英鎊INSERT
- 10. Scrapy代碼:文字與英國英鎊符號導致問題使用蜘蛛
- 11. 從XML文件中顯示Flash中的英鎊符號
- 12. 編碼問題:英鎊符號出現爲<?>符號
- 13. Html字符集問題(英鎊符號來作爲問號)
- 14. android - 英鎊符號被破壞
- 15. 防止Vim從英鎊符號「#」開始?
- 16. Perl JSON英鎊符號轉義
- 17. 英鎊符號從數字格式?
- 18. PHP刪除英鎊符號(£)從價格
- 19. 在asp.net的Outlook中顯示英鎊符號的問題
- 20. 英鎊符號(£)在生成CSV文件顯示爲£
- 21. 如何在iOS5中顯示英鎊符號
- 22. Codeigniter似乎打破了$ _POST的'英鎊'字符(英鎊)
- 23. 如何從XSLT中的XML特性中刪除英鎊符號?
- 24. 動態生成標題標記中的英鎊符號
- 25. 英鎊符號(£)Zend形式的長度或字符集問題?
- 26. 英鎊符號(#)導致錯誤的文件名稱
- 27. 無法將英鎊或歐元符號寫入CSV文件 - Nodejs
- 28. 如何顯示Java Swing中的英鎊(£)符號?
- 29. 密碼在WCF中不能包含英鎊?
- 30. 如何將英鎊符號從C#Web應用程序正確導出到Excel? (而不是英鎊)
設置消息字符集爲UTF-8 。 –
@君子:這是* header *編碼的問題,而不是內容編碼。 – helios