Új hozzászólás Aktív témák

  • _Petya_

    őstag

    Sziasztok!

    PHP-ből küldök e-mailt, a mail() függvénnyel. A levél szövege UTF-8 kódolású MySQL adatbázisból származó sablon, amelyben a változókat preg_replace()-el cserélem szintén ugyanabból az adatbázisból szármató adatokra, tehát tekinthetjük úgy, hogy a teljes szöveg UTF-8 kódolású.

    Ezért simán a mail() függvénnyel elküldve a levél kódolása hibás lesz, ezért próbálom ISO-88592-2 kódolásúvá átalakítani, és úgy küldeni:

    $mailtext = preg_replace($patterns, $replacements, $text);
    $mailtext_iso = iconv("UTF-8", "ISO-8859-2", $mailtext);
    mail('user@valami.hu', iconv("UTF-8", "ISO-8859-2", $subject), $mailtext_iso);

    Így a levél szövegének második felét levágja, csak az első fele érkezik meg, helyes kódolással. Az iconv() kihagyásával az egész levél megérkezik, de rossz a kódolás.

    Kérdésem: miért nyeli le az iconv() a szöveg második felét?

    Petya

Új hozzászólás Aktív témák

Hirdetés