Piszę sobie aplikację, która między innymi będzie robić pracę klienta poczty, jednak problem z którym się spotkałęm jest troszkę trudny do obejścia. Na pewno wszyscy, którzy się bawili IMAPowymi funkcjami wiedzą o co chodzi. Otóż różne emaile mają różne kodowania. Pobierając sobię pocztę z gmaila czasem wszystko jest ok, a czasem pojawiają się krzaki, których nie byłem w stanie w żaden sposób wyeliminować, tak samo z wp i innych miejsc. Najgorszy typ z jakim dane mi było się spotkać to chyba taki, który generuje jednakowe krzaki dla każdego znaczka narodowego. Pytanie moje brzmi, jak przetwarzać pobrane emaile, żeby poprawnie wyświetlały się niezależnie od kodowania. W swojej aplikacji używam oczywiście UTF-8. Do tej pory próbowałem radzić sobie takim kodem:
if(mb_detect_encoding($email['body'])!='UTF-8') $email['body']=iconv(mb_detect_encoding($email['body']),'UTF-8//IGNORE',$email['body']);
Jednak ten kod nie działa we wszystkich przypadkach.
Tworząc aplikację korzystam z frameworka codeigniter i dodałem sobie taką oto bibliotekę:
https://github.com/gotha/PHP-IMAP-library/b...ter/MailLib.php
Pytanie brzmi, czy ktoś orientuje się może w jaki sposób poradzić sobie z tym problemem kodowania?
Zastanawiające są dla mnie funkcje:
imap_utf8
imap_mime_header_decode
Aczkolwiek do końca chyba nie wiem jak ich używać, bo w różnych kombinacjach nie działało tak jak chciałem. Byłbym wdzięczny za rozwiązanie lub przynajmniej podpowiedź jak to ugryźć ;]