Autor Zpráva
mackopu
Profil
Při používání třídy jpgraph jsem se rozhodl vytvořit univerzální skript pro tvorbu grafu, kterému předávám proměnné adresním řádkem. Např.:
<img src="graf_kolac_uni.php?sirka=400&vyska=170&titulek=Štěně ťape">
Proměnná $titulek je ve skriptu zpracována pomocí fce Win_Iso(), která se stará o zobrazení češtiny ve vykresleném grafu:
function Win_Iso($text)

{
return StrTr($text,"ŠšŽžźžŤťŚŹśźźš","ŠšŽžźžŤťŚŹśźĽš");
}
$titulek = Win_Iso($_GET["titulek"]);
Ale ouha! - š a ť se vůbec nevykresí (místo nich prázdné znaky). Pokud ovšem proměnnou $titulek deklaruji rovnou v souboru graf_kolac_uni.php, vše proběhne správně. Jak tuto situaci řešit?
Podotýkám, že kódování souboru graf_kolac_uni.php je ISO 8859-2 (to bych moc nerad měnil), charset souboru, v němž se obrázek vykresluje, je windows-1250 (nepomohlo ani experimentování se změnou kódování v něm).
mila
Profil
1. Použij urlencode pro ošetření znaků v adrese obrázku.
2. Zkus funkci iconv
llook
Profil
Divnoznaky v adresním řádku by se správně měly kódovat jako UTF-8. Opera to tak dělá, MSIE myslím také, ale Firefox je kóduje jako ISO-8859-1. Takže urlencode je naprostá nutnost.
mackopu
Profil
mila - super, stačilo $titulek = iconv("windows-1250","ISO-8859-2",$_GET["titulek"]);
llook - bohužel nemohu souhlasit, otestováno v IE, Firefoxu a NN stringem "Loď čeří kýlem tůň, obzvlášť v grónské úžině" - všude korekní výstup.

Všem díky.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0