Autor Zpráva
Petr_1
Profil
Ahoj, nedaří se mi javascriptem nastavit hodnotu pole branou z cookiny nastavené php-čkem tak, aby byla v pořádku čeština. Zní to zmateně, snad to vysvětlí skript dole :-)
Pokud by někdo věděl jak na to, byl bych vděčen.

<?
setcookie('g','ěščřžýáíé');
?>
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head>
<input type='text' id='vstup'>
<script>
function getcookie(Name) {
var search = Name + "=";
if (document.cookie.length > 0) {
offset=document.cookie.indexOf(search);
if(offset!=-1) {
offset += search.length;
end = document.cookie.indexOf(";", offset);
if (end == -1) end = document.cookie.length;
return unescape(document.cookie.substring(offset, end));
}
}
}
a=getcookie('g');
document.getElementById('vstup').value=a;
</script>
peta
Profil
Petr_1
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
cz.php.net/header
cz.php.net/cookie

Samozrejme ale musis mit soubor ve spravnem kodovani. Jestli soubor neni win-1250 a ty se jen pokousis nastavit hlavicku na utf-8. Bez odkazu to nic nezjistis.
Petr_1
Profil
tohle mám v pořádku, ale už jsem na to přišel - vytvořím nebo najdu tabulku pro url kódování a podle ní to budu převádět
joe
Profil
peta:

Včera (vlastně dneska ráno :-) jsem to taky zkoušel. Taky mi to nefungovalo a na řešení jsem nepřišel... Tak kdyby někdo věděl, taky bych rád viděl řešení. (samozřejmě, že kódování souboru jsem měl v utf-8, nastavil jsem meta na utf-8 a zkoušel jsem taky header v php na utf-8, ale pořád to nešlo vypsat česky.
Petr_1
Profil
no jak jsem psal v předchozím příspěvku, vytvoříš si tabulku, třeba pomocí php funkce urldecode, a podle ní budeš vypisovaná data převádět
los
Profil *
Namiesto unescape použi decodeURIComponent.
Petr_1
Profil
jak prosté a jak účinné :-)

díky moc
Petr_1
Profil
jenom doplním že některé znaky dělají potíže, jako třeba "+"
ale to už není problém převést ručně
Honza-PHP
Profil *
moje řešení:
a) zápis cookie v PHP, čtení v JS = v PHP rawurlencode, v JS decodeURIComponent
b) zápis v JS a čtení v PHP = v JS encodeURIComponent, v PHP rawurldecode

Před použitím rawurlencode() v PHP jsem musel ještě string převést do UTF-8 (pomocí iconv), jinak to hlásilo v případě českých znaků chybu při decodeURIComponent() a nic nepřevedlo.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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

0