Autor Zpráva
1ight
Profil
Dobrý den prosím o nakupnutí jak to mam řešit a dekodovat subject snažím se to tu rozbehat pres iconv a další všelijaký věci co jsem tady na php.net našel a taky na všeobecne na internetu a nejde mi nejak decodovat nevíte jak na to prosím?

používám ISO-8859-1

dělám to všechno přes imap funkce muj subject u mailu je tedka
=?utf-8?B?xJvFocSNxZnFmcW+xI3DvcW+?=

děkuju jdu hledat dal..
BetaCam
Profil
echo base64_decode("xJvFocSNxZnFmcW+xI3DvcW+"); // výstup : ěščřřžčýž
1ight
Profil
Děkuju moc ted vím co je správný mě to vyhodilo

ěščřřžčýž
1ight
Profil
Ted jsem se vyspal zapl počítače a zkouším znovu a ono to zašlo jít... podle php.net tento příklad

Včera jsem ho zkoušel minimálně 10x několika všelijakýma dekodama a nešel a tedka se mi to rozkodovalo v zakladu na 'ěščř' nechápu kde byla chyba jestli v php se neco špatnýho načetlo nebo nekde se načetla chyba a po restartu se zase dal dohromady?... ale tedka přestavam mít duvěru vuči serveru :/

Výsledek : tímto se to dá rozkodovat
_____________________________________
$elements = imap_mime_header_decode($val->subject);
for ($i=0; $i<count($elements); $i++) {
    echo "Charset: {$elements[$i]->charset}\n";
    echo "Text: {$elements[$i]->text}\n\n";
}
BetaCam
Profil
1ight
Děkuju moc ted vím co je správný mě to vyhodilo

ěščřřžčýž


No ono když nemáš nastavené kódování na UTF-8 tak se neni čemu divit, že ti to píše rozsypaný čaj. :)
1ight
Profil
tedka mam:
=?iso-8859-2?Q?=EC=B9=E8=F8=E8=F8=BE=FD?=
dekodovaný finální výsledek:
ěščřčřžý

použil jsem:
______________________

$elements = imap_mime_header_decode($val->subject);
for ($i=0; $i<count($elements); $i++) {
    echo "Charset: {$elements[$i]->charset}\n";
    echo "Text: {$elements[$i]->text}\n\n";
}

_______________________
Výsledek:
Charset: iso-8859-2 Text: ěąčřčřľý

a ten text tu ještě proháním nějakou funkcí která je pro kodování iso-8859-2 je to tak na 3 stránky a tím dostanu ten výsledek kterej je uplně nahore (valid)... jestli nekdo ví jak to řešit jinak než tou 3 stránkovou funkčí tímhle kodem pro i jiný charsety tak prosím určitě napište rád se zbavím tý složitý funkce

"\xFA" => 'ú',
"\xFB" => 'ű',
"\xFC" => 'ü',
"\xFD" => 'ý',
"\xFE" => 'ţ',
BetaCam
Profil
1ight

Tak nevim co stim děláš, ale pokud já použiji například :

$string = '=?iso-8859-2?Q?=EC=B9=E8=F8=E8=F8=BE=FD?=';

echo iconv_mime_decode($string, 0, UTF8).'<br />';


tak z toho vyleze ěščřčřžý samozdřejmě pokud mám nastavený kódování stránky na UTF-8
1ight
Profil
co ja mam v header je :-( charset=windows-1250'

a když jsem se pokoušel celýho webu přehodit kodovaní tak se mi celej zhroutil :/
ten string mi vypíše
když jsem se pokoušel posílat v hlavičce do iconv windows-1250 tak mi to nevzalo jako že neexistuje toto kodovani :/ tak jsem to řešil podle php_info() tam jsem vyčetl že php používá nebo moje stránky používají ISO-8859-1 a o jiném kodování se tam nepsalo tak doufam v tohle a tímhle taky texty nerzkoduju

ěščřřčžýžýáí
BetaCam
Profil
No ale tak se musíš nejak rozhodnout jaké kódování chceš používat né ze budes používat všude jiné.

Je to asi jako bych měl DB v ISO-8859-2, hlavičky posílal jako UTF-8, soubory ukládal v ISO-8859-1. To je prostě kravina. Rozhodni se pro jedno kódování v tom dělej všechno.

ěščřřčžýžýáĂ

Ono je to v pořádku jenže ty máš hlavičky jako windows-1250 a ten text je v UTF-8 je proto logické, že to není k přečtení.
1ight
Profil
Rád bych ale nevím jak přejít na utf-8, když jsem se o to pokoušel tak se mi rozhodí celý web (pixely) + čeština se zhroutí.
__

- v php.ini mam vše na default nic tam nemam nastavený natvrdo a v myconf.cnf tam zde mam taky default default nic

- na webu musím:
mysql connectovat v kodovíní UTF-8 jinak je problem
header webu je "text/html; charset=windows-1250" jinak je taky mam problem

- a zajmavý je že php_info() mi píše ISO-8859-1
Musím se tomu zasmát :) a mam to na apache nějaký s tech posledních verzí a mysql mam 5+ neco taky novýho.. -4 měsíce

___

ale jsem rád že to nějak funguje
1ight
Profil
už vím jak na kodovani musí se nastavit v textu dokumentu :/
Kart
Profil
To ISO mas totiz nastaveny na serveru, a ne v HTML strance...

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: