2011-08-26 3 views

답변

6

주제 헤더입니다 .. UTF-8로 인코딩을 설정합니다. 헤더는 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에서 무엇 :

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); 
+0

에 댓글을 달았습니다.이 질문을하기 전에 Google에서 첫 번째 스 니펫을 시도했으며 나에게 도움이되지 않습니다. 나는 머리글을 쓰고 있지 않다. –

+1

'setSubject (str, "UTF-8") 제안서를 사용하여 피사체를 인코딩하는 방법을 알 수 있도록'mimeMessage.writeTo (System.out);을 시도해보십시오. 내가 궁금해서 ... – helios

+0

시도한 추가 샘플 – helios

1

msg.setContent(message,"text/html; charset=UTF-8"); 
+2

그 MIME 부분 (메인 콘텐츠)의 본문에 대한 인코딩을 나타내지 만 헤더 인코딩 (주제가있는 곳)과 관련이 없습니다. 나는 메시지의 구현이이 인코딩을 헤더를 올바르게 인코딩하는 데 사용하는지 확신하지 못한다. (특별히 이상한 인코딩이 필요한 경우 특별히) – helios

+1

이것은 제목에 영향을 미칠 것인가? –

+0

아, 너무 느립니다. 이미 –

관련 문제