Stránka 1 z 1

[PHP] IMAP - kódování zprávy do UTF-8

Odeslat příspěvekNapsal: 5. 11. 2013 18:57
od infomf
Ahoj,
řeším problém, jak překódovat zprávu z 8BIT na UTF-8.
Zpráva získána:
Kód: Vybrat vše
imap_fetchbody($this->mbox, $messageNumber, $partNumber, FT_UID);

a potom překódováno
Kód: Vybrat vše
switch($encoding) {
   case 0: return mb_convert_encoding($data, 'UTF-8', '7BIT'); // 7BIT
   case 1: return mb_convert_encoding($data, 'UTF-8', '8BIT'); // 8BIT
   case 2: return $data; // BINARY
   case 3: return base64_decode($data); // BASE64
   case 4: return quoted_printable_decode($data); // QUOTED_PRINTABLE
   case 5: return $data; // OTHER
}


Přičemž vím, že můj konkrétní problém se týká 8BIT. Původní kódování zjištěno z imap_fetchstructure.

Výsledek kódování je vždy špatný. Nezobrazují se české znaky.
Ještě dodávám hlavičku e-mailu
Kód: Vybrat vše
Content-Type: text/plain; charset=windows-1250; format=flowed
Content-Transfer-Encoding: 8bit

Díky za rady

Re: [PHP] IMAP - kódování zprávy do UTF-8

Odeslat příspěvekNapsal: 5. 11. 2013 19:26
od (C)
a nechcete spis kodovat z Windows-1250 na UTF8?

Re: [PHP] IMAP - kódování zprávy do UTF-8

Odeslat příspěvekNapsal: 5. 11. 2013 19:34
od akira.uzai
Jasně že se to zobrazuje špatně, když dáváte do hlavičky špatné kódování. Pro e-maily se už pěkně dlouho používá UTF-8 a kdyb jste z nějakého důvodu nechtěl použít UTF-ko, tak správné české kódování je ISO-8859-2!