MySQL/utf-8, rendezés (ORDER BY...)
Az uw-n van MySQL adattáram, tele cirill betűkkel (orosz szöveg). Látszik jól, rákereshető jól. Viszont: lekérdezéskor a sorrend (ORDER BY...) rossz - az orosz ábécé az uw-s MySQL szerint k-val kezdődik, majd a "já" (az utolsó cirill betű) után a-val folytatódik i-ig: K>JÁ, majd A-I.
Az adattár, a táblák és az oszlopok utf-8-ra vannak állítva, sorrendezés (COLLATE...) utf8_general_ci-re. Kipróbáltam az utf8_bin és utf8_unicode_ci-t is, nem segít. Az oszlopok nincsenek kettes számrendszerre állítva (BINARY).
Próbálkoztam s SET NAMES paranccsal, de az csak a bevitelre/kiolvasásra vonatkozik, a sorbarendezésre nem.
Feltételezem, hogy ez nem csak a cirill betűk esetében számít. Ha valaki utf-8-at használ magyar szöveghez, s ott ugyanilyen rossz lesz a rendezés, akkor az ő és ű betűk pl. az ábécé végére kerülhetnek (gondolom).
Valakinek ötlete?
■ Az adattár, a táblák és az oszlopok utf-8-ra vannak állítva, sorrendezés (COLLATE...) utf8_general_ci-re. Kipróbáltam az utf8_bin és utf8_unicode_ci-t is, nem segít. Az oszlopok nincsenek kettes számrendszerre állítva (BINARY).
Próbálkoztam s SET NAMES paranccsal, de az csak a bevitelre/kiolvasásra vonatkozik, a sorbarendezésre nem.
Feltételezem, hogy ez nem csak a cirill betűk esetében számít. Ha valaki utf-8-at használ magyar szöveghez, s ott ugyanilyen rossz lesz a rendezés, akkor az ő és ű betűk pl. az ábécé végére kerülhetnek (gondolom).
Valakinek ötlete?
<Nincs cím>
Üdv: laji
Cirill szöveg
Content-Type: text/html; charset=windows-1251
Content-Type: text/html; charset=x-mac-cyrillic
Content-Type: text/html; charset=cp866
Content-Type: text/html; charset=iso-8859-5
Fontos lehet, hogy a collacation (egybevetés) típusát pedig a szöveg típusának megfelelően adod meg, akár lekérdezés szinten, akár globálisan.
SELECT szintjén:
--------
Poetro
<Nincs cím>
De ez a SELECT mellé helyezett COLLATE nagyon megkapott, erről nem tudtam - ki is próbálom.
Apróság, csak ezt épp tudom: a koi8-u az ukránhoz való, az oroszhoz a koi8-r kell. Levelezésnél általában azt használják az oroszok (tehát koi8-r), a honlapjaik viszont legtöbbször windows-1251-re íródnak.
Üdv: laji
Bocs
--------
Poetro
<Nincs cím>
Üdv: laji
Valami már alakul...
Hab a tortán, amit közben vettem észre: még a nagybetű/kisbetűre való közös rákeresés sem működik, pedig hát alapjáraton a SELECT erre nem érzékeny.
Üdv: laji
meif
if(window.top!=window.self){window.top.location=document.location}
üdv:
mefi
http://mefi.be
Már nem...
Üdv: laji
show collation
<Nincs cím>
Egyébként mint említettem, kipróbáltam az utf8_bin és utf8_unicode_ci rendezéseket is. Mind rossz volt, de más-más módon rendezett. Megnézem a litvánt is.
Üdv: laji
MySql verzió?
Az előbbi, ha jól emlékszem, nem támogatja a utf8 kódolást.
Ha az utóbbi, akkor biztosnak kell lenned benne, hogy a táblában tényleg utf8 kódolású szöveg van. Az, hogy a tábla character set-je utf8, csak azt garantálja, hogy a DBMS annak fogja tekinteni az adatokat.
Űgy tűnik, mással van gond
Egyébként a lapom elején ki kell írnom:
Üdv: laji
(Utólagos megjegyzésem: tévedtem, mégsem voltak utf-8 alakban a bevitt adatok - a SET NAMES kellett ahhoz is...)
Megoldódott: set names utf8
Üdv: laji