Autor Zpráva
Marcus Flintus
Profil
Zdravím,

mám takovej zvláštní dotaz. Měl jsem dlouho problémy s kódováním předmětu e-mailu posílaného pomocí mail(), stránky mám v UTF-8.

Když jsem nechal předmět jentak, samozřejmě některé znaky dělaly problém (např. č)

Tak jsem zkusil tento kód:
$subject = "=?UTF-8?Q?".imap_8bit($subject)."?=";


Ten sice zabral pěkně, ale vždycky když byl předmět delší (třeba 50 znaků), vložila se tam rovnítko a "mezera"... mezeru není mezera odřádkování. Jen se jako mezera v předmětu e-mailů jevila. Použil jsem proto tento kód:

$subject = "=?UTF-8?Q?".str_replace("=\r\n", "", imap_8bit($subject))."?=";

Který funguje parádně, naprosto spolehlivě.

Můj dotaz spočívá v tom, jestli mi může někdo vysvětlit proč se tam přidává to co tam nemá co dělat? A jestli mé řešení nemá vedlejší účinek o kterém nevím... ?

Díky
AM_
Profil
z wikipedie:
Lines of quoted-printable encoded data must not be longer than 76 characters. To satisfy this requirement without altering the encoded text, soft line breaks may be added as desired.
Stačilo vygooglit "quoted-printable added space" a našel jsem :) používej google.
Mimochodem, když tuhle mezeru odstraníš, tak tvůj string teoreticky nesplňuje specifikaci quoted-printable.
Marcus Flintus
Profil
Aha... ono na druhou stranu je to těžký vejít se s pár slovy pod 76 znaků, když každý písmenko s diakritikou má 6 znaků... :-/

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0