[php]json_encode problem
3 naročniki
3 naročniki
Uporabiti želim autocomplete implementacijo (jQuery UI) vendar imam problem, iz baze dobim besede s šumniki (Imena vseh slovenskih krajev) in funckija json_encode v phpju očitno ne prenese šumnikov, tako, da namesto vrednosti vrne null. Obstaja kakšna enostavna rešitev ali spremenim imena vseh krajev s šumniki iz ŠČŽ v "HTML kode" ($#...;)?
hvala
7 odgovorov
ok sedaj sem v bazi spremenil vsa imena in šumnike zamenjal s kodo, tako da sedaj dobim lepo rezultate prejo ajaxa ampak sedaj so na seznamu šumniki s kodami in ne pretvorjeni. poiskusil sem tudi s UNICODE in isto ne deluje. kakšni predlogi?
preveri, kakšne encodinge imaš (baza, tabela, field, ter kako je file sejvan... )
jaz imam recimo ves cas probleme, ce ne dam
header("Content-type: text/html; charset=utf-8"); ?>
pa je povsod nastavljeno na utf-8
če zaženem php datoteko v brskalniku šumniki so, jquery jih potem ne prikaže pravilno v autocomplete seznamu. baza je v utf-8, tudi s to vrstico ni sprememb.
drugače pa nasplošno kako rešujete težave s šumniki pri pošiljanju z ajax-om? jaz imam vedno težave, probal sem že z miljon nastavitvami pa nobena ne pomaga.
kaj pa ce poskusas z iconv pred outputom?
pa se 2 linka, ce kej pomaga:
http://www.sitepoint.com/forums/showthread.php?t=616215
http://stackoverflow.com/questions/410704/cyrillic-characters-in-phps-json-encode
Zadevo sedaj pogono rešil s pomočjo pretvarjanja v javascript v "url" kodo (%8A), isto je tudi v bazi, potem ko pa dobim vrnjeno preko ajaxa pa spet nazaj v šumnike. Ker je deadline dokaj blizu bo to dovolj zaenkrat (problem je ker sedaj % pri mysql poizvedbi smatra za dodaten atribut pri LIKE poizvedbi).
tako da mislim da edina rešitev je spreminjanje v javascript v neke druge nize, potem v phpju spet nazaj ter še enkrat spet kodiranje in v javascript sped decodiranje. mogoče bi bilo pametno uporabiti kar kako že obstoječe kodiranje (base64) za celoten string.
Preveč kompliciraš stvar :D
Če imaš povsod utf-8, ti mora prikazati šumnike...saj jquery nič ne spreminja kodiranja, samo prikaže tisto kar dobi :D torej nimaš povsod utf-8