Autor Zpráva
jio
Profil
Dobrý den.
Mám db v UTF-8 na MySQL4.0 s mysql_query("SET CHARACTER SET utf8");

Zápis i zobrazení je v pořádku, pokud ale chci v db hledat přes formulář POST, tak po zadání textu s diakritikou neumím nic najít.

Pokud si podmínku vypíšu přes echo, dostanu místo textu špička tento výpis text LIKE '%ŁPIČKA%'

podmínku zpracovávám takto:


$podm = (isset($_POST['podm'])) ? stripslashes($_POST['podm']) : '';
...
text LIKE '%".AddSlashes(strtoupper_cz($podm))."%'"


Můžete mi poradit co s tím? Děkuji.
BaTeCzKo
Profil
A kódování stránky je také UTF-8? Pokud je kódování stránky jiné než kódování db, tak to může zlobit. :)
Aesir
Profil
jio:
Jakým způsobem zacházi s $podm funkce strtoupper_cz()?
Raději použijte multibyte funkci k tomu určenou mb_strtoupper.
jio
Profil
Aesir

Děkuji, to bylo ono.

V windows1250 jsem měl funkci:
function strtoupper_cz($str) { // prevede cesky retezec na velka pismena
$lc_chars = "ěščřžýáíéůúďňť";
$uc_chars = "ĚŠČŘŽÝÁÍÉŮÚĎŇŤ";
return strtr(strtoupper($str), $lc_chars, $uc_chars);
}

a bláhově jsem si myslel, že to řeší i v UTF-8
DJ Miky
Profil
jio
A v té fci vám chybělo "ó" :-).
Toto téma je uzamčeno. Odpověď nelze zaslat.

0