php mysql cestina v sql dotazech

Katerina Bubenickova katerina.bubenickova na plbohnice.cz
Úterý Září 29 14:51:06 CEST 2009


Dobry den,
udelala jsem jednoduchou aplikaci telefonni seznam, php, mysql.
Pak bylo treba premigrovat na novejsi server,
aplikaci jsem prevedla do utf8.

Po case jsem si vsimla, ze v phpmyadminovi neni korektne zobrazovana
cestina. mysqldump vyhodil neco divneho, co se na zalohovani nedalo
pouzit.

Po mnoha pokusech jsem zjistila toto: phpmyadmin je v utf8, php skript
je v utf8. Udelala jsem si skript na export dat a experimentovala, 

pokud  soubor export.sql mel kodovani utf8 a napsala jsem do nej 
> set names latin2; 
naimportovala jsem ho tak, jak byl na pocatku, skript mi fungoval,
 ale phpmyadmin (pochopitelne) zobrazoval cestinu osklive.

Podarilo se mi naimportovat data v utf8 tak, ze vychozi soubor mel utf8,
na zacatek jsem dala set names utf8;, do kazde tabulky 
> DEFAULT CHARSET=utf8 COLLATE utf8_czech_ci;
v phpmyadminovi se vysledek zobrazoval hezky,
V mem php skriptu jsem pridala po otevreni databaze 

> mysql_query("SET CHARACTER SET utf8");

Jenze ted mi nefunguji sql dotazy pri vyhledavani, pokud je v polozce diakritika.
Napr. SELECT * ...  WHERE funkce='primá*'.

R*zn* jsem to zkou*ela, 
na za*átek skript* jsem doplnila

> mb_language("uni");
> mb_internal_encoding("UTF-8");

ale to taky nepomohlo.
Navic jsem neco zmenila v databazi, takze vratit do puvodniho stavu, kdy vse fungovalo 
jen v phpmyadminovi to spatne zobrazovalo a byly nepouzitelne zalohy pomoci mysqldump, taky neumim. 

Budu vdecna za kazdou radu

--Katerina




Další informace o konferenci Linux