Autor Zpráva
lukas87
Profil *
v mozile na linuxu se rozkládá řetězec pomocí substr se špatným kódováním.

kódování mám nastaveno na utf-8
soubor je uložen v utf-8

a tenhle script:
$carovy_kod="ččč";
if (substr($carovy_kod,1,1)=="č") echo "je to č"; else echo "je to něco jinýho";
vypíše "je to něco jinýho"

když si chci vypsat jenom substr($carovy_kod,1,1) tak to vypíše otaznk. Nevíte někdo čím by to mohlo být?
koudi
Profil
To samozrejmě neni chyba mozily na linuxu...php jede na serveru a tudiz to prohlizec a OS neovlivni. To uz bys moh vedet.
Nicmene problem je v tom, ze substr neumi pracovat s UTF8 (a jinymi vicebyte kodovani). Musis pouzit mb_* funkce.
DJ Miky
Profil
Aby to šlo, musel bys použít mb_* fce, jak psal koudi, nebo si „vysubstrovat“ dva znaky, pokud víš, že tam vždy bude znak s diakritikou.
lukas87
Profil *
jo vim že jede php na servru ale nevěděl sem proč mi to na php servru co jede na windowsech funguje a v php na linuxu ne :-) a hlavně sem netušil že ta funkce neumí utf moc díky za rady.
Víček
Profil *
koudi : si zlato, tvá odpověď mi hrozně pomohla, věděl jsem že musí existovat něco jako Multibyte String Functions, ale nemohl jsem to najít :-)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0