Autor Zpráva
ybznek
Profil
používám JQuery a pokouším se v něm načíst data pomocí JSON z externího souboru. Potřebuju v php nějak zakódovat diakritiku, aby ji pak JQuery přečetl, jakou funkci mám použít? zkoušel jsem json_encode() ale pak to prostě diakritiku úplně vynechává
Alphard
Profil
Zkuste zjistit, kde konkrétně se diakritika rozbije. Mimochodem, pro testování AJAXu je vynikající rozšíření Firebug do Firefoxu.

Mně to vždycky fungovalo bez zvláštní péče o diakritiku, vše mám v utf-8 a nebyl problém.
ybznek
Profil
Alphard
teď mě napadlo, jak to udělat bez JSONa, ale i při normálním $.get() to má tu diakritiku špatně.
(konktrétně "Š", ale bude jich víc)
v UTF-8 to taky mám
Alphard
Profil
Možná by pomohla kombinace urlencode() na straně PHP (nebo máte statický zdroj?) a unescape() na straně javascriptu, ale připadá mi to jako zbytečně složité.
ybznek
Profil
Alphard
takže, obešel jsem JSON a použil klasický GET, problém byl stále, ale vyřešilo to odeslání charset windows-1250 v hlavičce, což nechápu proč, když je vše v UTF8

teď řeším opacný problém, musím zaEscapovat data, co se posílají na "server", ale pak mi nejdou odescapovat funkcí urldecode()
jakou funkci mám použít?
Alphard
Profil
ybznek:
ale vyřešilo to odeslání charset windows-1250 v hlavičce, což nechápu proč, když je vše v UTF8
To je vážně divné, jste si skutečně 100% jistý, že jsou uložena v utf?

musím zaEscapovat data, co se posílají na "server", ale pak mi nejdou odescapovat funkcí urldecode()
To mi opět připadá nestandardní. Já data v JQuery posílám pomocí $.post( a funguje to. Zkuste si nejdříve zkontrolovat kódování všech souborů.
Chamurappi
Profil
Reaguji na ybznka:
musím zaEscapovat data, co se posílají na "server", ale pak mi nejdou odescapovat funkcí urldecode()
Zaescapuješ je v JS pomocí funkce encodeURIComponent a o dekódování se stará server sám, ne?
ybznek
Profil
myslím, že jsem to vyřešil, i když nevím, jak
problém byl v kódování, ale jinde,
soubory mám určitě v utf, ale v tom který "dává data ajaxu" mám header s charset windows 1250, nakonec jsem to vyřešil ICONVem

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: