2013-01-31 2 views
2

SwiftMailer을 사용하여 이메일을 보내고 있지만 UTF-8 과목에 대한 목록 화 문제가 있습니다. Swiftmailer는 기본값으로 QPHeaderEncoder을 사용하여 전자 메일 헤더를 인코딩하며 safeMap은 일부 UTF-8 프랑스어 문자에 문제가있는 것처럼 보입니다. 내가 사용하는 한 주제에는 trouvé (프랑스어로 표시됨)라는 단어가 포함되어 있으며 주제가 사용자에게 도착하면 trouv가 표시됩니다.SwiftMailer에서 헤더의 인코딩을 변경하는 방법이 있습니까?

콘텐츠 인코더로 사용할 수있는 NativeQPContentEncoder과 비슷한 것을 사용하고 싶지만 헤더에는 Base64Quoted Printable 인코더 만 있습니다.

이 문제를 해결하는 방법이 있나요, 그래서 코드를 붙여 어쩌면 내가 뭔가 잘못하고 있어요 난 당신이 당신의 지배를받는 문자열 인코딩 방법을 알고 있는지 확인합니다, 여기에 먼저

$message = Swift_Message::newInstance() 

// set encoding in 8 bit 
->setEncoder(Swift_Encoding::get8BitEncoding()) 

// Give the message a subject 
->setSubject($subject) 

// Set the From address with an associative array 
->setFrom(array($from => $niceFrom)) 

// Set the To addresses with an associative array 
->setTo(array($to)) ; 
+0

나는 메시지에서 파운드 기호와 비슷한 문제가있다. – Amir

답변

2

PHP 구성에 mbstring.func_overload 옵션의 값이 0이 아닌지 확인하십시오. 그렇다면 0으로 변경하고 웹 서버를 다시로드 한 다음 메시지를 다시 보내보십시오.

mbstring.func_overloadoverrides 일부 문자열 PHP 함수 및 UTF-8에서 까다로운 버그가 발생할 수 있습니다.

개인적으로 나는 mbstring.func_overload을 사용 중지하여이 문제를 정확하게 해결했습니다.

+0

죄송합니다. 거의 5 년 전이었습니다. 어떻게 해결했는지 모르겠습니다. 하지만'mbstring.func_overload'가 활성화 된 것을 기억합니다. 그래서 해결책 일 수 있습니다. – Khriz

0

사용하고 있습니다. UTF-8이 아니라면 utf8_encode()를 실행하십시오.

또한 메시지를 setCharset ('utf-8')해야합니다.

+0

나는 이미 모든 프로젝트 문자열이 UTF-8이고 charset을 점검했다. 고마워요 어쨌든 – Khriz

관련 문제