JavaMail中文附件的處理方法 (轉)

worldblog發表於2007-12-14
JavaMail中文附件的處理方法 (轉)[@more@]能很好的支援中文,但在測試過程中發現使用JavaMail髮帶有中文名的
附件時,檔名是亂碼,經測試與檢視原始檔發現,是在JavaMail包裡的一個寫
的方法沒有考慮國際化因素,對雙位元組或多位元組的字元沒有考慮。即在
com.sun.mail.util.LineOutputStream
com.sun.mail.util.ASCIIUtility.getBytes(String s);
此方法直接將字串轉化成字元然後轉換成位元組。其實在String類裡的getBytes()
方法就直接可以按照預設的編碼正確轉換成位元組碼。
解決方法:將com.sun.mail.util.LineOutputStream中呼叫ASCIIUtility.getBytes(String s);
方法的部分改為s.getBytes()解決了此問題。
用重新編譯好的LineOutputStream.class檔案替換javamail裡的Com/sun/mail/util/LineOutputStream.class檔案即可

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-993282/,如需轉載,請註明出處,否則將追究法律責任。

相關文章