2009-09-24 9 views
2

프랑스어 악센트 부호가있는 문자가 포함 된 mailto 링크를 만들고 전자 메일 본문을 만들려고합니다. 문자를 인코딩하는 HTML과 URI는 모두 작동하지 않습니다.MailTo 링크에 깨진 악센트 부호가있는 문자

<a href="mailto:%20?subject=ce%20titre%20est%20cass%C3%A9.&body=travaux%20deja!%20cesser%20d'%C3%AAtre%20t%C3%AAtu">SEND EMAIL</a> 

같은 결과가 URI 인코딩없이 발생합니다 :

<a href="mailto:?subject=ce titre est cassé&body=travaux deja! cesser d'être têtu">SEND EMAIL</a> 

상관없이 내가 그것을 어떻게, 새로운 이메일이 깨진 문자로 열어 여기 내 코드입니다. URI로 인코딩 된 공간 및 줄 바꿈은 제대로 작동하지만 ANSI가 아닌 것은 손상됩니다. MS Outlook 2007의 영어 버전과 프랑스어 버전 모두에서 테스트 중이라는 사실을 기억해야합니다. 누구나이 기능을 사용할 수있는 방법을 알고 있습니까? (주제 포함) 메일 헤더에

답변

2

모든 그것은 이렇게 사소한 아니라,

http://www.ietf.org/rfc/rfc2047.txt

이 RFC에 따라 MIME 인코딩해야하지만 대부분의 언어에서 그것을 처리하는 코드를 찾을 수 있습니다.

적절하게 인코딩 된 텍스트는 다음과 같습니다,

=?ISO-8859-1?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?= 

편집 :

<a href="mailto:[email protected]?subject=%3d%3fISO-8859-1%3fB%3fY2UgdGl0cmUgZXN0IGNhc3Pp%3f%3d&Content-Type=text%2fplain%3b+charset%3dISO-8859-1&body=travaux%20deja!%20cesser%20d'%C3%AAtre%20t%C3%AAtu">SEND EMAIL</a> 

하는 것은 귀하의 주소로 이메일을 교체, 그것은 당신이 원하는 무엇 있는지를보기 위해보십시오.

+0

이 예에서는 OP가 전자 메일을 작성하지 않습니다. 그는 mailto 링크를 형성하고 있습니다. 그 명세는 그의 맥락과 아무 관련이 없다. – Asaph

+2

downvote 전에 RFC를 읽으십시오. 이 RFC는 메일 본문이 아니라 헤더에 관한 것입니다. 제목은 메일 에이전트에서 올바르게 표시되도록 인코딩해야합니다. –

+0

나는 그것이 HTML 페이지가 아니라 이메일 담당자의 책임이라고 생각한다. html 페이지에서 인코딩 한 경우 두 번 인코딩 된 문자열로 끝날 것이라고 생각합니다. – Asaph

1

알 수 있습니다. 이것은 Microsoft Outlook/Entourage의 버그 일 수도 있고 아닐 수도 있습니다. 내 기본 메일 리더를 Mail.app로 변경했으며 urlencoding으로 아름답게 작동합니다. (아마도) 버그는 예제에서 2 개의 악센트 부호가있는 e 문자 중 하나에 영향을주는 것으로 나타납니다. 아마도 Outlook/Entourage에서 miltibyte UTF8 문자를 올바르게 처리하지 못했습니까?

+0

당신이 옳다고 생각합니다. 위의 제 의견에있는 링크를보십시오. URL 사양에는 전자 메일 판독기 측면에 지정된 작업이없는 것으로 보입니다. Mail.app는 국제적 유용성을 위해 '위와'를 넘어 섰을지도 모릅니다. 그러나 Outlook 2007에서이 작업을 수행 할 수 없으면 생산에 투입 할만큼 신뢰할 수 없습니다. 마법 및 캐릭터 세트 = UTF-8 매개 변수에 관한 정보가 없으면이 매개 변수는 죽었습니다. – AyexeM

+0

자세한 게시물은 여기에 있습니다 : http://stackoverflow.com/questions/974558/outlook-not-processing-multi-byte-characters-when-using-mailto – AyexeM

1
Mootools의와 예를 들어

, (그러나 다른 프레임 워크 또는 '원시'자바 스크립트 수), 나는 보통이 작업을 수행하고, 메인 브라우저/클라이언트와 맥/PC를 작동합니다

window.addEvent('domready', function(){ 
    //get the links to encode 
    var links_to_encode = $$('#page ul li a'); 

    links_to_encode.each(function(link){ 
     //check if the link has an href 
     var original_href = link.get('href'); 
     if(original_href){ 
      //substitute it with the encoded version 
      link.set('href',encodeURI(original_href)); 
     } 
    }); 
});//fine domready 

안녕을!

3

IE 8에서는 설정 옵션이 있습니다. 도구 -> 옵션 -> 고급. 국가 별 옵션에서 "mailto 링크에 UTF-8 사용"옵션을 선택하십시오.

Windows XP에서이 설정은 기본적으로 사용되지 않습니다. Windows 7에서 기본적으로 사용하도록 설정되어 있습니다.

희망이 있습니다.

관련 문제