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