Autor | Zpráva | ||
---|---|---|---|
Johny666 Profil |
#1 · Zasláno: 9. 4. 2008, 01:14:20
Zdravim,
mam problem s razenim podle abecedy a uz nevim, co muze byt spatne. Nejdriv nastaveni: - MySQL 5.0.45 na Win XP SP2 - v MySQL Administratoru nastaveno kodovani (Startup variables > Advanced > def. char. set = utf8, default collation = utf8_czech_ci) - vytvorena databaze (utf8 / utf8_czech_ci) - vytvorena tabulka s CHARSET=utf8 COLLATE=utf8_czech_ci - u textovych sloupcu specifikovano collate utf8_czech_ci Patral jsem vsude mozne, vyzkousel jsem i priklad z http://www.linuxsoft.cz/article.php?id_article=1108 a furt mi to radi spatne - dava 'č' za 'd' a jeste ty jednotliva 'č' mixuje mezi 'e'.. priklad: Citroen Dacia Daewoo Dřevostavby DVD a VHS přehrávače Dvouletky Časopisy, magazíny Editace kontaktu Čistící stroje, čerpadla Ekonomika, finance Články, poradna Elektro, bílé zboží Predem diky za rady, pokud si je s tim nekdo vi... :-) |
||
Johny666 Profil |
#2 · Zasláno: 9. 4. 2008, 01:15:57
Jeste jsem zapomnel pridat priklad SQL dotazu:
SELECT Nazev FROM Tabulka ORDER BY Nazev ..pripadne: SELECT Nazev FROM Tabulka ORDER BY Nazev COLLATE utf8_czech_ci |
||
Kajman_ Profil * |
#3 · Zasláno: 9. 4. 2008, 13:32:22
Možná je polámaný soubor s porovnáním.
Jestli to není problém, zkuste tam dát aktuální verzi mysql a vyzkoušejte, jestli se to nezlepší... http://dev.mysql.com/downloads/mysql/5.0.html#win32 |
||
Johny666 Profil |
#4 · Zasláno: 9. 4. 2008, 14:34:37
Možná je polámaný soubor s porovnáním.
Jestli to není problém, zkuste tam dát aktuální verzi mysql a vyzkoušejte, jestli se to nezlepší... http://dev.mysql.com/downloads/mysql/5.0.html#win32[/i] Diky za radu, bohuzel se to chova stale stejne. Nyni mam tedy 5.0.51a. |
||
Kajman_ Profil * |
#5 · Zasláno: 9. 4. 2008, 14:50:30
Tahle testovací tabulka to dělá také?
CREATE TABLE `tabulka_utf8` ( `nazev` VARCHAR(60) CHARACTER SET utf8 COLLATE utf8_czech_ci NOT NULL, `id` INTEGER UNSIGNED NOT NULL DEFAULT NULL AUTO_INCREMENT, PRIMARY KEY (`id`) ) ENGINE = MyISAM CHARACTER SET utf8 COLLATE utf8_czech_ci; insert into `tabulka_utf8`(nazev) values ('Citroen'), ('Dacia'), ('Daewoo'), ('Dřevostavby'), ('DVD a VHS přehrávače'), ('Dvouletky'), ('Časopisy, magazíny'), ('Editace kontaktu'), ('Čistící stroje, čerpadla'), ('Ekonomika, finance'), ('Články, poradna'), ('Elektro, bílé zboží'); select * from `tabulka_utf8` order by nazev; |
||
Johny666 Profil |
#6 · Zasláno: 9. 4. 2008, 15:37:27 · Upravil/a: Johny666
Ano, toto je vysledek:
Citroen 1 Dacia 2 Daewoo 3 Dřevostavby 4 DVD a VHS přehrávače 5 Dvouletky 6 Časopisy, magazíny 7 Editace kontaktu 8 Čistící stroje, čerpadla 9 Ekonomika, finance 10 Články, poradna 11 Elektro, bílé zboží 12 U Vas to funguje OK? Pokud ano, muzu Vas poprosit o co nejpresnejsi konfiguraci MySQLka? |
||
Johny666 Profil |
#7 · Zasláno: 9. 4. 2008, 16:29:58
Jeste jsem v ramci dalsiho testovani prisel na to, ze si zrejme mysli, ze 'Č' a 'E' je totez.
select * from `tabulka_utf8` where nazev like 'Č%' select * from `tabulka_utf8` where nazev like 'E%' Tyto dva dotazy vrati totozny vysledek, obsahujici vsechny vyrazy, zacinajici na 'Č' i 'E': Časopisy, magazíny 7 Editace kontaktu 8 Čistící stroje, čerpadla 9 Ekonomika, finance 10 Články, poradna 11 Elektro, bílé zboží 12 |
||
Kajman_ Profil * |
#8 · Zasláno: 9. 4. 2008, 19:40:37
Mně se to řadilo dobře. Také MySQL 5.0.45 na Win XP SP2.
A neprozradí něco show variables like '%collation%' |
||
Johny666 Profil |
#9 · Zasláno: 9. 4. 2008, 20:59:23
Hmm, diky, neco to prozradilo..
collation_connection latin1_swedish_ci collation_database utf8_czech_ci collation_server utf8_general_ci V my.ini jsem se uz dlouho nehrabal, snad to tam nejak najdu a zmena zabere.. |
||
Kajman_ Profil * |
#10 · Zasláno: 9. 4. 2008, 21:07:03
A v čem ty dotazy zkoušíte? Ten klient nemá asi nastavenou znakovou sadu použitou pro připojení.
|
||
Johny666 Profil |
#11 · Zasláno: 9. 4. 2008, 21:37:12
Pouzivam Navicat (http://www.navicat.com/).. to by mne nenapadlo, ze to muze byt tim.. zkusim jeste treba query browser..
|
||
Johny666 Profil |
#12 · Zasláno: 9. 4. 2008, 21:39:49
Hm, tak Query Browser to taky seradil blbe a jeste zobrazil spatne nektere diakriticke znaky..
..a toto taky nezabira: SET collation_connection = 'utf8_czech_ci'; select nazev from tabulka order by nazev ..takze ocenim jakekoliv dalsi napady a navrhy.. :-) |
||
Kajman_ Profil * |
#13 · Zasláno: 10. 4. 2008, 07:13:27
Query browser to udělal dobře. Jen máte nesmyslné znaky v db, tak se to neseřadilo správně.
Když dáte ten insert v qb, tak by to mělo být ok. |
||
Časová prodleva: 8 dní
|
|||
Johny666 Profil |
#14 · Zasláno: 18. 4. 2008, 15:32:56
Omlouvam se za pozdni reakci, mel jsem uraz a nebyl jsem online :(
Pokud to tedy chapu spravne, tak mam: - web ve windows-1250 (pres to lidi vkladaji data) - svuj software, ktery se pripojuje k db defaultnim latin1_swedish_ci (pres to vkladam data ja) - databazi v utf-8 Ted je otazka, co s tim.. vsechno se zobrazuje vsude korektne (coz mi v tehle konstelaci pripada jako zazrak), akorat to spatne radi.. porad mi nejak nedochazi, v jakem kodovani ta data v db vlastne jsou.. |
||
Kajman_ Profil * |
#15 · Zasláno: 18. 4. 2008, 15:39:43
Zkusil bych si udělat kopii té tabulky na testování.
V té kopii změnit těm sloupečkům znakovou sadu na binary. Případně na blob. A pak zpátky na cp1250. Snad pak bude v query browseru diakritika ok - to je první krok. Ve druhém nastavit na webu set names na cp1250 a ve vaší aplikaci na to, v čem tam tu češtinu dáváte. |
||
Časová prodleva: 16 let
|
0