2010-02-08 1 views
2

가 여기에 내가 할 노력하고있어 무슨 관련 인코딩, 텍스트 필드를 절단한다. 이것은 거의 완벽하게 작동하지만 해결할 몇 가지 버그가 있습니다. 전자 메일에 특정 문자 (예 : ® - "")가 포함되어 있으면 현재 데이터베이스에 삽입 할 때 전자 메일 본문이 특수 문자에서 잘 리게됩니다. 그것은 $ Model-> save() 호출 중에 발생합니다.CakePHP는 아마

이메일은 UTF-8로 인코딩되지 않으며 모든 사용자가 이메일을 보낼 수 있기 때문에 수신 메일 인코딩을 제어 할 수 없지만 데이터베이스는 UTF-8입니다. 이메일이 UTF-8로 오면 제대로 작동하는 것 같습니다.

제안 사항? 저장하기 전에 인코딩을 변환하는 방법이 있습니까?

답변

1

내 생각에 데이터베이스가 ISO-8859-1 (또는 다른 인코딩) 특수 문자를 UTF-8로 인코딩 된 mySQL 테이블에 삽입하려고하는 시점에서 질식합니다.

이 문제를 처리하는 유일한 방법은 들어오는 전자 메일의 인코딩을 결정하고 iconv()을 처리하는 것입니다. iconv_mime_decode

또한 mb_detect_encoding를 사용하여 인코딩을 도청을 시도 할 수 있지만 : 나는 UTF-8 인코딩을 결정하지만이 구체적으로 들어오는 전자 메일 처리 적이

, 나는이 올바른 방향으로가는 생각 이것은 내가 아는 한 신뢰할 수없는 것으로 간주됩니다.

+0

iconv()는 imap_fetchstructure()와 함께 트릭을 수행하여 인코딩을 결정합니다. – MattBelanger