ugrás a tartalomhoz

MySQL vs UTF8-order

ptibor · 2008. Nov. 22. (Szo), 21.32
Hello

Egy apró problémám lenne csak
van egy rendszer, ami tárol többszáz nevet, de mivel az oldal sok helyen ajaxot használ, így muszáj volt utf8-at használnom. ezzel nem is lenne bajom, DE az utf8 a magyar ékezetes karaktereket ugye mindenféle speckó karakterrel oldja meg, és így is érkezik az adatbázisból, így az order paraméterrel a rendes nevek előtt jelennek meg azon nevek, amik ékezetes betűvel kezdődnek.
A nagy kérdés arra vonatkozik, hogy van e arra mód, hogy az "order by"-en belül oldjam meg ezt a problémát.
(arra már gondoltam, hogy a kapott tömbben kellene egy korrektúra, majd sorbarendezés, de mivel a többsorral rendelkező eredmények egy olyan objektumban esnek ki, aminek minden sora egy tömb. Így ez egy kissé megbonyolítja a dolgot)

remélem valakinek sikerült megfejteni a kérdést. Előre is köszi

T.
 
1

Ez alatt mit

duplabe · 2008. Nov. 22. (Szo), 22.40
Ez alatt mit értesz?

mindenféle speckó karakterrel oldja meg


Ha azt, hogy kriksz krakszok vannak az adatbázisban, akkor lehet, hogy az adatbázis kapcsolat nem utf-8-as, vagy maguk a táblák nem azok.

Ha a kapcsolat a ludas, akkor miután kapcsolódtál az adatbázishoz, a
SET NAMES UTF8
lekérdezéssel utf-8-ra állítod be.

Ezáltal az adatbázisban is rendes élezetes karakterek lesznek, így az order by is jó lesz.
2

:?

fchris82 · 2008. Nov. 22. (Szo), 23.25
így muszáj volt utf8-at használnom
o_O
Úgy 10 éve alapból UTF-8-at kellene használni. Fájloknál, kommunikációnál, adatbázisnál. Még jó, hogy az Ajax nem is enged mást... Úgyhogy a probléma fordítva van: az a gond, hogy a többi helyen nem azt használsz.
- adatbázis táblák létrehozásánál használd a DEFAULT CHARSET=utf8 -at.
- kapcsolati problémánál lásd előző hozzászóló megoldását
- a text editorodban is UTF-8-ként mentsd a fájlokat.
- a http fejlécekben és a html meta tagben pedig megadni, hogy utf-8-at használsz.

Ha a fentieket megcsinálod, akkor nem igazán lesz problémád azzal, ha vki "speciális" karaktert akar használni egy űrlapon (pl: ë, č, ç), mert mondjuk szerepel a nevében.

Karakterkódolási problémák kiküszöbölése
MySQL 5.0: karakterkódolások
3

azért utf-8 mert ajax?

laco · 2008. Nov. 22. (Szo), 23.51
FLAME:

Persze, az UTF-8 használata ma már alap. De azt nem értem, hogy hogy jön ide az AJAX?

Attól, hogy egy oldalon használsz AJAX-os megoldásokat, még simán lehet az oldal kódolása Latin2. (még szerencse...)
4

collation

fqqdk · 2008. Nov. 24. (H), 16.13
http://en.wikipedia.org/wiki/Collation
http://dev.mysql.com/doc/refman/5.0/en/charset-general.html

a sorbarendezést a collation határozza meg. ha az oldal magyar, akkor célszerű utf8_hungarian_ci collationt használni.