Oznámení
Chyby pri mbstring function overload
před 12 lety
- ujojozef
- Člen | 3
Používam mbstring.func_overload = 7 a žial zistujem, že inak fantastické Texy! je pri tejto konfugurácii prakticky nepoužitelné… Vie sa o tom?
před 12 lety
- David Grudl
- Nette Core | 6806
Co zkusit nastavit mb_internal_encoding('ISO-8859-1')
nebo něco
takového?
před 12 lety
- ujojozef
- Člen | 3
Ďakujem, pomohlo to! Dôvod bude, že preg_* funkcie to nepreťažuje? Alebo sa mýlim?
před 12 lety
- David Grudl
- Nette Core | 6806
Spíš jde o ty funkce, které přetěžuje, takže třeba substr, strlen apod.
před 12 lety
- ujojozef
- Člen | 3
Tak potom mi to uniká… Ja som totiž mal interný encoding na UTF-8. Kedže str preťažuje, tak tam by som si myslel, že mu bude jedno aký je interný encoding – poradí si s ním. Ale kedže preg* to nepreťažuje (a Texy! preg* používa) to by som videl ako kameň úrazu.
Podpora UTF-8 je jedna zo slabin PHP, to je isté.
před 12 lety
- David Grudl
- Nette Core | 6806
Problém je v tom, že preg, ačkoliv podporu pro UTF-8 má (modifikátor
u
), tak parametr offset přijímá a následně vrací
„v bajtech“, nikoliv „ve znacích“. V bajtech pracují tak funkce
str*, protože UTF-8 nepodporují.
Jakmile začnou pracovat „ve znacích“, tj. po přetížení na chytřejší mb_str* funkce se zapnutou podporou UTF-8, tak vznikne nesoulad mezi str* a preg* a je to … někde ;)
Do Texy jsem přidal detekci, jestli náhodou není func_overload a UTF-8 aktivní.