Portál AbcLinuxu, 10. května 2025 02:27
function ascii2hex($ascii) {
$hexadecimal = '';
for ($i = 0; $i < strlen($ascii); $i++) {
$byte = strtoupper(dechex(ord($ascii{$i})));
$byte = str_repeat('0', 2 - strlen($byte)).$byte;
$hexadecimal.=$byte." ";
}
return $hexadecimal;
}
ale problem tohto je, ze mi diakritiku (+ľščťžýáíéúä, atď) nevie prekonvertovat.
Budem vdacny za kazdu radu.
Řešení dotazu:
0xC0
jak v latin2 tak ve win1250, ale v jinych znacich se tyto dve lisi. Treba ž je ve win1250 0x9E
, v latin2 je to 0xBE
.
<?php $str = 'This is an encoded string'; echo base64_encode($str); ?>
Content-Type: text/plain; charset="iso-8859-2"
Content-Transfer-Encoding: quoted-printable
Subject: =?iso-8859-2?q?Server_linux=2Ecz=3A_Upozorn=ECn=ED_na_=FA=E8ast_?=
=?iso-8859-2?q?v_konferenc=EDch?=
=?iso-8859-2?q?Server_linux=2Ecz=3A_Upozorn=ECn=ED_na_=FA=E8ast_?= =?iso-8859-2?q?v_konferenc=EDch?=Všimni si hlavně toho začátku
=?iso-8859-2?q? ...
. To kódování samozřejmě musí odpovídat kódování toho stringu, který jsi zakódoval.
< a href="mailto:?=?iso-8859-2?q?Server_linux=2Ecz=3A_Upozorn=ECn=ED_na_=FA=E8ast_?= =?iso-8859-2?q?v_konferenc=EDch?= "> odosli email </a>
<a href="mailto:email@soban.cz?subject==?iso-8859-2?q?Server_linux=2Ecz=3A_Upozorn=ECn=ED_na_=FA=E8ast_?= =?iso-8859-2?q?v_konferenc=EDch?= "> odosli email </a>
header('Content-Type: text/html; charset=utf-8');
$pokusnytext=urlencode("234 ľščťž");
echo '<a href="mailto:aaa@aaa.aa?subject= =?utf-8?q?'.$pokusnytext.'Server_linux=2Ecz=3A_Upozorn=ECn=ED_na_=FA=E8ast_?= =?iso-8859-2?q?v_konferenc=EDch?= "> odosli email </ a>';
ale outlook2003 si s tým neporadí (viď obrázok)
echo '<a href="mailto:aaa@aaa.aa?subject='.urlencode('předmět').'&body='.urlencode('tělo').'">klik</a>';
nevim jak Outlook 2003, ale kolega v praci pouziva Outlook 2007 a myslim i 2010 a myslim ze mu to funguje (nestezoval si <a href="mailto:aaa@aaa.aa?subject=Server linux.cz: =?UTF-8?B?VXBvem9ybsSbbsOtIG5hIMO6xI1hc3QgdiBrbw==?=
=?UTF-8?B?bmZlcmVuY8OtY2g=?=
"> odosli email </a>
Prostě když chceš změnit kodování tak ten text musíš taky překodovat, tvůj text se mi taky nezobrazuje správně, v utf je správný tento.
Prostě si musíš udělat pořádky a správně překodovat znaky.
A mělo by to fungovat i v win.
=?UTF-8?Q?
) Outlook ani Evolution nežere, pojídá ho jen Thundebird tzn, závisí to na e-mail klientovi.
len sa obavam, ze to neni univerzalne riesenie a na inej masine by to mohlo byt tiez rozhadzane.
Myslím, že v tomhle máš zcela pravdu. Závisí to na tom, jaké kódování používá klient. CP1250 ti bude určitě fungovat na českých Windows, ale pokud to bude něco jiného je dost pravděpodobné, že to selže.
Nejspíš bys ani nemusel používat převod do HEX ale jen nastavit správný content type té stránky. Problém ale zůstane – bude to zase záviset na tom, že mail klient i stránka používají stejné kódování.
Část problémů by se dala odfiltrovat zjištěním jaké kódování používá prohlížeč přes user agent accept-encoding, ale opět – prohlížeč a mail klient mohou používat jiná kódování.
Podle mě tohle stoprocentně vyřešit nejde. Kdyby ses na diakritiku vykašlal tak by sis ušetřil hodně starostí a možných problémů. Pokud to má být něco pro komunikaci, tak je ještě možnost vytvořit nějaký formulář na odesílání mailů
nemyslim si...Nemyslis si? Clovek by skoro rekl ze ja jsem ten komu to nefunguje. BTW zkusil jsem si to a v opere i firefoxu se spravne otevrou i neenkodovany mailto: odkazy, takze mas blbe i kodovani dokumentu. A vysvetlovat kodovani a nastavovani http hlavicek nekomu kdo podle vlastnich slov nemysli
<html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <style></style> </head> <body> <a href="mailto:test@test.cz?subject=ěščřžýáíé">link</a> <a href="mailto:test@test.cz?subject=%C4%9B%C5%A1%C4%8D%C5%99%C5%BE%C3%BD%C3%A1%C3%AD%C3%A9">link</a> </body> </html>
čo sa FF a opery týka - to je snáď iná kapitola...Prohlížeč je úplně první a základní kapitola, protože právě prohlížeč to musí překódovat ze znakové sady dokumentu (deklarované v http hlavičkách) překódovat do znakové sady systému (ve které se předávají parametry mezi programy). Ty jako autor stránky nemůžeš vědět jaké kódování používá cílový systém, a poštovní program nemůže vědět v jakém kódovaní byla stránka ze které parametry pochází, pouze prohlížeč zná obojí a může to zkonvertovat správně. Pokud víš, že je to správně, všechno ostatní je chyba poštovního klienta.
Inak tvoja veta "Kodovani urcis tak ze ho urcis." je bohovská...Možná bohovská, ale pravdivá. Hlavičku Content-Type posílá server, tedy si ji můžeš určit ty. Pokud máš v ruce dokument v jiném kódování, můžeš překódovat dokument nebo změnit hlavičku - obě řešení jsou zcela ekvivalentní.
Takže skúsme menej osočovania a viac produktívnych príspevkov.Když jsem se ti produktivně pokusil poradit, odpověděl jsi že si "nemyslíš" že je to správě, aniž by ses obtěžoval to vyzkoušet. Taková přezíravost vůči někomu kdo se ti snaží poradit je sprosťárna, a jestli jsem tě urazil, tak věz, že to byl záměr a zasloužil sis to.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.