Topic: UTF8 ir lietuviškas rūšiavimas

Sveiki.

Bėda tokia, kad nerandu niekaip, kaip išrūšiuoti suvestus duomenis pagal lietuvišką abėcėlę. Pasidariau lentelę, suvedžiau visas lietuviškas raides, dideles ir mažutes, ir dabar kokį palyginimą benaudočiau - vistiek išrūšiuoja neteisingai (pvz - pirma eina 'ė', paskui 'e', pirma 'į', paskui 'i', pirma 'ą', paskui a). Character set utf8, collation, kaip sakiau - nuo utf_general_ci iki cp1257ų_lithuanian_ci ... Idomiausia, kad visiškai teisingai rodo nedarius jokio rušiavimo, prieš tai phpmyadmine buvau nurodęs, kad 'alter table abc order by vardas'. Help :)

Pagarbiai.

P.S. - rūšiavimą tikrinu phpmyadmin ir delphi.

Re: UTF8 ir lietuviškas rūšiavimas

kai prisijungi prie mysql turi nusistatyti koduote utf8_lithuania_ci. UTF8 kad duomenys UTF formatu, lithuania kad lietušivai rikiuosi, o tas ci net nežinau ką reiškia. Taip pat tokias koduotes uždėl stulpelias, pagal kuriuos rikiuoji

Re: UTF8 ir lietuviškas rūšiavimas

ci - case insensitive, duomenis rūšiuojant didžiosios ir mažosios raidės vertinamos kaip vienodos. Neveikia delphyje, phpmyadmine irgi. seka ė, ę, e (turi būti atvirkščiai), y, į, i (turi būti atvirkščiai), ū, ų, u (turi būti atvirkščiai). Nerūšiuojant - viskas idealiai, net didžiosios rodomos pirmos. Koduote lentelės utf8_lithuanian_ci, stulpelio - taip pat, ir net selecte galiu nurodyt - tas pats. versija 5.0.47, windows. Ar man vienam tokios problemos, kad neišrūšiuoju pagal lietuvišką abėcėlę (http://www.likit.lt/?i=rasmenys/abecele), ar niekas nebandėt? :)

Re: UTF8 ir lietuviškas rūšiavimas

Ehe... :) Atsiprašau už sutrukdymą. Po daugybės bandymu atradau, kad MySql vienodai traktuoja e ę ir ė, i į y ir etc.

Re: UTF8 ir lietuviškas rūšiavimas

Aha ir pas mane tas pats. Dabar nesuprantu, koks tada skritumas tarp utf8_lithuania_ci, utf8_unicode_ci, utf8_general_ci, jeigu rikiuojama vienodai? Galbūt kompiliuojant reikia uždėti kokią nors direktyvą?

P.S. pas mane:

# Server version: 5.0.51b-log
# Protocol version: 10
# Server: Localhost via UNIX socket
# User: root@localhost
# MySQL charset: UTF-8 Unicode (utf8)

Koduotės visur geros

Re: UTF8 ir lietuviškas rūšiavimas

utf8_general_ci, utf_unicode_ci - pažiūrėk -  'y' raidę surūšiuoja kaip angliškoje abėcėlėje - 'xyz', utf8_lithuanian_ci - pagal lietuvišką abėcėlę, visas u ų ū, e ę ė ir i į y laikydamas ta pačia raide. Kad but mažiau bardakų - tiesiai i my.ini idejau direktyvas

[mysqld]
collation_server=utf8_lithuanian_ci
default-character-set=utf8

Ir nebereik nustatinėt prisijungimo metu (tikiuos). čia windowsam, bet linuxui irgi yra, tik nepamenu dabar (helpe kažkur parašyta)

Re: UTF8 ir lietuviškas rūšiavimas

tai ša kompiliavimo metu defaultine skoduotes nustaciau. Bet vistiek. Esu kažkur girdėjęs jog žmonės pasidaro savo collation'us ir tada rikiuoja be problemų. Manau reikėtų pasidomėti

Re: UTF8 ir lietuviškas rūšiavimas

Buvo mintis, bet man tiek nemoka :)

Re: UTF8 ir lietuviškas rūšiavimas

turiu mysql bazėje lietuviškus simbolius. Web aplikacija juos rodo teisingai.
Bet PhpMyAdmin rodo sulaužytus lietuviškus simbolius.
Nors PhpMyAdmin visur nurodyta UTF8.

Kaip nustatyti kokia teksto koduotė duomenų bazės lauke? t.y. duomenis paimu, matau kad sulaužyta bet kaip patikrinti kokia koduote jie užkoduoti?

Re: UTF8 ir lietuviškas rūšiavimas

http://www.mysql.lt/wiki/Lietuviskos_raides

var_dump(0 == 'tekstas'); // TRUE. ar zinai kodel? :)