2017-10-17 71 views

回答

1

Windows seems to usex-mac-ce作爲Windows-1250代碼頁(匹配CP1250 JDK字符集)的別名。

的JavaMail保持地圖「MIME到Java」字符集別名的內部,與 MimeUtility.javaCharset方法解決,處理這樣的情況。

遺憾的是,x-mac-ce(至少從JavaMail 1.6.0開始)沒有mapping,並且(AFAIK)沒有提供擴展API來添加它。

所以,你可以在此刻做的最好的是主題行中的應用程序代碼進行解碼,這樣的:

MimeUtility.decodeText(
    m.getSubject().replace("x-mac-ce","CP1250") 
) 

測試

m.setSubject("=?x-mac-ce?Q?Wdro=BFenia_znaku_CE?="); 
System.out.printf(
    MimeUtility.decodeText(
     m.getSubject().replace("x-mac-ce","CP1250") 
    ) 
); 

>>Wdrożenia znaku CE 

注意

我第一次錯誤地將編碼標識爲Macintosh Central European encodingx-MacCentralEurope Java Charset),它不完全匹配CP1250,並且似乎是它的轉置版本(即, 0xBF匹配0xFB e.t.c.)。

+0

是的,這是工作,但部分。主題被解碼,但沒有波蘭語字符。 –

+0

@PiotrOlaszewski - 我想我現在已經能夠正確識別您的郵件的真正字符集。 – zeppelin

+0

是的,更改爲cp1250後,字編碼正確。 –