ugrás a tartalomhoz

Magyar karakterek kezelése UTF-8-at használó MySQL-ben

Hojtsy Gábor · 2006. Feb. 6. (H), 21.27
Éppen egy adatbázis kódolási probléma megoldásán munkálkodtam, amikor észrevettem, hogy a MySQL által támogatott UTF-8 alapú összevetések listáján megtalálható az utf8_hungarian_ci is, amit már régóta várunk karaktereink helyes kezeléséhez, ahogy Egmont is kifejtette erről szóló cikkünk hozzászólásában. Sajnos azonban ez a lista csalóka, hiszen a legújabb MySQL verziót dokumentálja. Ezért kutakodtam egy kicsit, hogy mégis mikortól lett elérhető ez az újítás.

A lista alatt található szövegben lelhetünk rá a megfelelő verziószámra, mely meglepő módon az 5.0.19-es, tehát egy még meg nem jelent kiadásra hivatkozik. A leendő verzió változásairól szóló dokumentációban sikerült ráakadnom a nekünk kedves újítás részletesebb magyarázatára is. Úgy tűnik, hogy bevallottan nem tökéletes funkcionalitással indul majd az utf8 alapú magyar összevetés támogatás, de ez is egy nagyon várt előrelépés.

Two new Hungarian collations are included: utf8_hungarian_ci and ucs2_hungarian_ci. These support the correct sort order for Hungarian vowels. However, they do not support the correct order for sorting Hungarian consonant contractions; this issue will be fixed in a future release.
 
1

utf8_generic_ci

Bártházi András · 2006. Feb. 7. (K), 01.00
A tesztjeim szerint az utf8_generic_ci egész jól vette a magyar ékezeteket (aáeéiíoóöőuúüű szerűen, de lehet, hogy a=á... volt). Minden esetre tök jó a dolog.

Ha minden igaz, akkor a "consonant contractions" kifejezés a nem mást takar, mint a dupla mássalhangzókat, amiket illik jól kezelni. Viszont nyelvi elemzés nélkül, ami nyilván a MySQL-nek egyáltalán nem feladata, tökéletesen nem lehet. Pl. egy kis zuhany: "kiszuhany" szóban nincsen "sz", ezért a helyes ABC rendben a kiszerel elé kerül, nem pedig mögé.

-boogie-
2

nem generic hanem general

kutyamutya · 2008. Nov. 14. (P), 19.51
Csak hogy a Google-lal is rá lehessen találni a lapra, leírom helyesen is: utf8_general_ci
:)
Üdv:
kutyamutya