Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

slova NJ i LJ kao jedinstveni karakter (znak) ?

[es] :: MySQL :: slova NJ i LJ kao jedinstveni karakter (znak) ?

[ Pregleda: 3618 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

komplikator
Programer / sys. inženjering
CRO

Član broj: 29755
Poruke: 158
*.adsl.net.t-com.hr.

ICQ: 13387003


+8 Profil

icon slova NJ i LJ kao jedinstveni karakter (znak) ?13.02.2006. u 13:33 - pre 220 meseci
Dakle, ne radi se samo o standardnom encodingu i collationu ČŽŠ-ova nego i slovima LJ i NJ. Kako u surtiranju i pretraživanju MySql ili neku drugi SQL bazu izuzev MSSQl-a. natjerati na sovo LJ i NJ prepoznaje kao jedan karakter, a ne kao dva?

Primjerice, ako imam upit koji kaže nešto tipa:
Code:
SELECT xxnešto FROM xxtablica WHERE xxnešto LIKE '__LJ_T%' ORDER BY xxnešto;
prema kojem očekujem da 3 slovo bude LJ i 5 slovo bude T.

Dakle, trebam LJ ili NJ u upitima i indeksiranju tretirati kao jedan karakter. Što mi može u tome pomoći ?
Nešto slično događa se i s razmakom no to znam riješiti. Želim logiku pretraživanja i sl. spremati i vrtjeti na db serveru, a ne negdje na clientima. Ideja je bila stvarati neke matrice unutar polja (to podržava npr. pysql) i pretraživati ih, no znam da postoji elegantniji i pametniji način za to. Može li se uvesti neki psoeban national language char ili nešto slično, pa da sam stvorim vlastiti encoding?

Ima netko ideju, jeste se sretali s time?

Hvala!


[Ovu poruku je menjao komplikator dana 13.02.2006. u 14:36 GMT+1]
God is real unless is declared as integer.
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
194.247.222.*

Sajt: www.novikorisnik.net


+5 Profil

icon Re: slova NJ i LJ kao jedinstveni karakter (znak) ?13.02.2006. u 13:54 - pre 220 meseci
Ćirilica?
 
Odgovor na temu

komplikator
Programer / sys. inženjering
CRO

Član broj: 29755
Poruke: 158
*.adsl.net.t-com.hr.

ICQ: 13387003


+8 Profil

icon Re: slova NJ i LJ kao jedinstveni karakter (znak) ?13.02.2006. u 14:08 - pre 220 meseci
Radim s latinicom i Latin2, Latin2_Croatian_ci.
God is real unless is declared as integer.
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.hsd1.ma.comcast.net.



+6 Profil

icon Re: slova NJ i LJ kao jedinstveni karakter (znak) ?13.02.2006. u 15:02 - pre 220 meseci
Oba znaka se nalaze ovde:

http://www.unicode.org/charts/PDF/U0180.pdf

Naravno, moraš da koristiš Unicode.
 
Odgovor na temu

komplikator
Programer / sys. inženjering
CRO

Član broj: 29755
Poruke: 158
*.adsl.net.t-com.hr.

ICQ: 13387003


+8 Profil

icon Re: slova NJ i LJ kao jedinstveni karakter (znak) ?13.02.2006. u 17:23 - pre 220 meseci
Da, baš to. Vidiš, nikad nisam detaljnije analizirao UTF-8. Zato opet novi "problemi" i pitanja.


Gledam helpove za mysql 4.1.x. i imam nekih nedoumica tj pitanja gdje "zapinjem".

Pokrenem server, otvorim MysqlFront i konektam se s UTF-8.
Napravim novu bazu pod UTF-8. Napravim novu tablicu s UTF-8 i napravim novo polje pod UTF-8 i još neka opisna polja koja nisu bitna za sortiranje.
Potom preko mysqlfronta ubacim neke vrijednosti tipa 'BAKLJA', 'BODLJA', 'VOLJA', 'BOLJA' itd... no opet je sve "isto", ne kužim da je LJ u bazi upisano kao zasebna vrijednost u obliku jednog karaktera. Kod riječi VOLJA i BOLJA slovo A se ponovno nalazi na 5 umjesto 4 mjestu, traženje slova L opet pronađe L umjesto da vrati null.

Gdje griješim ?
God is real unless is declared as integer.
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.hsd1.ma.comcast.net.



+6 Profil

icon Re: slova NJ i LJ kao jedinstveni karakter (znak) ?13.02.2006. u 17:54 - pre 220 meseci
Citat:
komplikator:Potom preko mysqlfronta ubacim neke vrijednosti tipa 'BAKLJA', 'BODLJA', 'VOLJA', 'BOLJA' itd... no opet je sve "isto", ne kužim da je LJ u bazi upisano kao zasebna vrijednost u obliku jednog karaktera. Kod riječi VOLJA i BOLJA slovo A se ponovno nalazi na 5 umjesto 4 mjestu, traženje slova L opet pronađe L umjesto da vrati null.

Gdje griješim ?


Kako uneseš ta slova? Iskreno, nemam pojma kako bi uneo sa tastature te znakove, osim ako ne koristiš neki alat kao što je Character Map. Ako ih uneseš kao sekvencu L+J, tako će i biti uneti u bazu.
 
Odgovor na temu

komplikator
Programer / sys. inženjering
CRO

Član broj: 29755
Poruke: 158
*.adsl.net.t-com.hr.

ICQ: 13387003


+8 Profil

icon Re: slova NJ i LJ kao jedinstveni karakter (znak) ?14.02.2006. u 07:10 - pre 220 meseci
Da, koristim charmap sa advanced unosom.

Nego, to sve treba na bazu primijeniti iz Delphija i PHP-a. Ako dobro shvaćam cijeli princip to znači da baza samo hvata, sortira i vraća sirove vrijednosti bez neke međukonverzije i ja ću sve što hvatam po input boxevima, combo-ima, gridovima i sl. morati translatirati u utf-8 i kasnije vraćati tako i nazad u cp koji se već koristi na clientu. Hajde još što se tiče PHP-a. no znam da mi Delphi svakom promjenom verzije Mysql-a. skoro počne pucati (zapravo, radi exceptione).

Još će se to sve trebati raditi lokalno no bez nekog servera u neki XML ili client dataset i sinhronizirati s MySql bazom na poslužiocu. Vidim da sam si zadao lijepog posla.

Nego, ne bi li RDBMS sam trebao raditi translaciju sa clientovog charseta u zadani na koloni/tablici/bazi/serveru ? Mislim da MySql ima neke komande no nisam se poigrao njima. Svejedno, opet mi ostaje ručno translatiranje vrijednosti pri unosu, opet moram tražiti L+J i translatirati ih u #1113 (ili koji već) ?
God is real unless is declared as integer.
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.lionbridge.com.



+6 Profil

icon Re: slova NJ i LJ kao jedinstveni karakter (znak) ?14.02.2006. u 13:29 - pre 220 meseci
Bojim se da oko tih detalja ne umem da ti pomognem. Nemam pojma ni o PHP-u ni o Delphi-ju, a sa MySQL-om sam tek nedavno počeo da radim.

Uglavnom, kod unosa ćeš verovatno morati sam da detektuješ parove kao što su LJ i NJ i da ih zameniš odgovarajućum Unicode simbolom (taj proces se zove normalizacija). Što se baze tiče, znam da MSSQL ima polja za Unicode text, a za MySQL ne znam tačno, ali u najgorem slučaju možeš da koristiš BLOB i onda sigurno neće biti nikakve interne konverzije.

Za prikaz slova, u PHP-u bi to trebalo da bude lako ako koristiš utf-8 encoding, a za Delphi nažalost pojma nemam :)
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+710 Profil

icon Re: slova NJ i LJ kao jedinstveni karakter (znak) ?14.02.2006. u 14:03 - pre 220 meseci
Ja koliko znam ES se drži na MySQL-u. E, obratite pažnju na sledeći karakter (naglasak na jednini):

Lj

;)

BTW, svejedno ćeš morati da konvertuješ po korisničkom unosu jer nijedna tastatura nema problematične digrafe, a teško da će korisnici znati da koriste Alt kombinacije.

Evo sad probah na jednom onlajn demou, izgleda da i sortiranje sa ovim karakterima lepo radi, pod uslovom da je postavljeno character set utf8 collate utf8_unicode_ci na tom polju.

[Ovu poruku je menjao jablan dana 14.02.2006. u 15:31 GMT+1]
 
Odgovor na temu

[es] :: MySQL :: slova NJ i LJ kao jedinstveni karakter (znak) ?

[ Pregleda: 3618 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.