Outlook nie lubi UTF-8, w sumie to nie lubi chyba żadnego kodowania (przynajmniej jeśli chodzi o „mailto:”). Dlatego, gdy chcemy w „mailto” zawrzeć domyślny temat czy treść nowej wiadomości i w tekstach tych wystąpić mogą polskie ogonki, najbezpieczniej jest zakodować znaki specjalne, do których zaliczają się także polskie ogonki, funkcja urlencode($string). Np.
<a href=”mailto:mail@mail.com?subject=<?php echo str_replace(‘+’, ‘ ‘, urlencode(‘Domyślny temat’)); ?>&body=<?php echo str_replace(‘+’, ‘ ‘, urlencode(‘Domyślna treść’)); ?>”>LINK DO MAILTO</a>
Mankamentem funkcji urlencode() jest to, że zamienia ona spacje na znak +, dlatego wynik zwrócony przez nią najlepiej jeszcze przepuścić przez funkcję str_replace(), by spacje powróciły – tak jak na powyższym przykładzie. Trzeba tu jeszcze podkreślić, że plik zawierający powyższy kod powinien być zakodowany w Latin2 (ISO-8559-2).
Nieco bardziej skomplikowanie jest w przypadku, gdy domyślny temat czy treść pobieramy z bazy, gdzie kodowanie ustawione jest na coś innego niż Latin2. Nic nie da wtedy zakodowanie samego pliku ze skryptem w Latin2. W takim przypadku przydaje się biblioteka PHP o nazwie iconv, a dokładniej funkcja dostarczana przez bibliotekę o takiej samej nazwie iconv($input_charset, $output_charset, $string_to_convert). Np.
<a href=”mailto:mail@mail.com?subject=Zapytanie ofertowe&body=Produkt: <?php echo str_replace(‘+’, ‘ ‘, urlencode(iconv(„UTF-8″,”ISO-8859-2″,$product->pr_nazwa))), ‘(‘.$product->pr_index.’)'; ?>”>LINK DO MAILTO</a>
Stosując się do powyższych wskazówek możemy mieć pewność (99,99999… %), że polskie znaki będą poprawnie wyświetlane w każdym kliencie pocztowym.