MySQL order by in šumniki
 
schtr4jh 23. feb 2012 18:12:23 Pridružen od:
24. nov 2008
402 objav
322 33 4
#1

Dejstva:

- HTML charset: utf8

- kodiranje datotek: utf8 without BOM

- ob povezavi z bazo se izvede "SET NAMES 'utf8' COLLATE 'utf8slovenianci'"

- encoding polja v bazi je utf8slovenianci, tip je varchar

- php header za utf8 charset



Order by najprej prikaže rezultate, ki se začnejo s š, ž in č ter nadaljuje normalno po slovenski abecedi.



Obstaja kakšna elegantna rešitev?



EDiT: Naj še omenim, da so šumniki v bazi zapisani kot Å , ž in Ä, na strani pa se prikazujejo pravilno.


všeč(0) ni všeč(0) spam(0)
 
carli 23. feb 2012 18:40:44 Pridružen od:
5. avg 2008
1258 objav
583 54 17
#2

Preveri se enkrat vse encodinge, ker če bi blo vse ql bi v bazi videl čšž.


všeč(2) ni všeč(0) spam(0)
 
SlimDeluxe 23. feb 2012 19:26:59 Pridružen od:
29. apr 2010
1223 objav
1022 144 9
#3

+1 carli, preveri še collation od tabele in baze


všeč(0) ni všeč(0) spam(0)
Freelance Web Developer
 
schtr4jh 23. feb 2012 21:05:48 Pridružen od:
24. nov 2008
402 objav
322 33 4
#4

Phpmyadmin pravi, da je collation baze, tabele in polja utf8slovenianci, kodiranje datotek je definitivno UTF8 brez BOM (preveril v notepad in php eclipse), v HTML je meta content-type utf-8, query za collation se izvede takoj za mysqlselectdb, php header se izvede takoj na začetku.



Res mi je rahlo čudno vse skupaj.


všeč(0) ni všeč(0) spam(0)
 
carli 23. feb 2012 21:16:31 Pridružen od:
5. avg 2008
1258 objav
583 54 17
#5

Poizkusi spremenit en znak za čšž v bazi v sam č ali š pa poglej kaj ti vrne? Namreč če si kasneje spremenil encoding se znaki ne spremenijo sami.


všeč(0) ni všeč(0) spam(0)
 
SlimDeluxe 23. feb 2012 21:52:11 Pridružen od:
29. apr 2010
1223 objav
1022 144 9
#6

... ali pa če je uvozil iz baze z drugačnim collationom.


všeč(0) ni všeč(0) spam(0)
Freelance Web Developer
 
schtr4jh 23. feb 2012 22:01:02 Pridružen od:
24. nov 2008
402 objav
322 33 4
#7

Če vpišem direktno v phpmyadminu, se na strani prikaže '<?>' (če vesta, kaj mislim). Do izvoza/uvoza baze ni prišlo, vsi podatki so vnešeni preko form in v bazo se zapišejo brez kakršne koli spremembe.



Bi mogoče lahko bila kriva Apache nastavitev AddDefaultCharset (ki je privzeto nastavljena na UTF-8, kar naj bi bilo ok)?


všeč(0) ni všeč(0) spam(0)
 
SlimDeluxe 23. feb 2012 22:12:34 Pridružen od:
29. apr 2010
1223 objav
1022 144 9
#8

Tale default charset je, kolikor razumem, samo za nastavitev default charseta odgovora s strani strežnika klientu



Kako pa zgleda ta ročno popravljen znak v phpmyadminu? Če je ok, je samo pri outputu problem


všeč(0) ni všeč(0) spam(0)
Freelance Web Developer
 
schtr4jh 23. feb 2012 22:44:43 Pridružen od:
24. nov 2008
402 objav
322 33 4
#9

Znak v phpmyadminu je enak. Če vnesem 'č' v input na strani, se na strani prikaže 'č', v phpmyadminu pa 'Ä'; če ga vnesem v phpmyadminu, se v tam prikaže kot 'č', na strani pa kot '<?>'.


všeč(0) ni všeč(0) spam(0)
 
carli 24. feb 2012 05:58:03 Pridružen od:
5. avg 2008
1258 objav
583 54 17
#10

Ko vpisuješ tudi uporabljš SET names utf8?


všeč(0) ni všeč(0) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se