kodovani mysql
Richard Willmann
ml at foofree.sk
Tue Apr 8 20:52:14 CEST 2008
>> sorry za trochu OT dotaz, ale jak se mysql presvedci, aby defaultne
>> pouzivala znakovou sadu utf-8?
>
> Zalezi jakou uroven "defaultu" mas na mysli. A taky je otazka, jestli
> se ptas na kodovani serveru nebo klienta.
>
> Kodovani je napsano (v poradi v jakem se hleda) u sloupce tabulky, u
> tabulky, u databaze, v konfiguraci serveru, zakompilovano v serveru. U
> serveru.
>
> U klienta v konfiguraci (ta se ale nepouzije vzdy, zalezi na aplikaci,
> ktera knihovnu pouziva) a pak je zakompilovano.
toto by som radsej uviedol na pravu mieru. V kontexte s MySQL hovorime o
troch kodovaniach. Kodovanie v akom komunikuje klient so serverom, atd. (vid
doc)
To co pise Dan je malicko inak (alebo som prispevok nespravne pochopil :).
Data su ulozene v "nejakom" kodovani. Toto kodovanie sa definuje na urovni
stlpca. Ak nie je definovane, pouzije sa "default" hodnota z tabulky. Ak ani
tam, tak databazy. atd.
Pri MySQL je castym problemom "default" kodovanie "serveru" ako takeho. Toto
nastavenie sa dalej pouziva na roznych miestach. Implicitne je to latin1.
Uvodzovky som pouzil preto, lebo to nastavenie pouziva aj klientska kniznica
MySQL a pouzije ho ako kodovanie, v ktorom sa bavi so serverom. Jedinou
cestou zmeny je "WITH_CHARSET=..." pri make install clean v portoch.
Ak uz ale mas zkompilovany a nainstalovany MySQL, riesenia su dve:
* po kazdom volani connect() v aplikacii vykonat "SET NAMES XXX"
* pridat do /etc/my.cnf "init-connect='SET NAMES XXX'" (toto nie je
najstastnejsie, vykona sa to vzdy po kazdom prihlaseni s vynimkou pripadu,
ze je prihlasenym pouzivatelom root, dopad na vykon je ale minimalny)
Kodovanie MySQL je vseobecne tazko pochopitelne, skus napisat viac co myslis
"defualt kodovanim" pripadne napis viac o probleme, ktory sa snazis
vyriesit.
d.
rwi
More information about the Users-l
mailing list