Ahoj, mam problem s databazi. V databazi se mi zobrazuji otazniky misto pismenek "ž" a "š". Mam nastavene porovnani s latin2_czech_cs. Zvlastni je, ze na webu se mi tyto pismenka zobrazuji dobre, ale v phpmyadminu se mi zobrazuji otazniky.
Takze mi vse funguje donbre. Ale nastava problem. Potrebuju exportovat tabulku tak, aby se mi tam zobrazovaly ž a š. nějaké nápady? Nevím si rady :(
Toto je nejčastější problém. Výukové knihy a spol se o tomto zrovna moc nezmiňují a proto to pak způsobí takovéto trable.
Většina dat přistupují k databázi externě - z webového formuláře apod. Jenže, svět má několik jazyků a to se projevuje i ve způsobu psaní. Pro správné zobrazení znaků se musí použít správné kódování.
Proto mysql při vstupu nebo výstupu používá konvertor, kterým převede znaky na ten správný podle dané tabulky.
Tento konvertor se nastavuje zadáním SQL příkazu SET NAMES xxx, kde xxx je název kódování. V tvém případě SET NAMES latin2;
Tento příkaz je potřeba zadat hned na začátku, ještě předtím než začneš s daty pracovat.
Pokud příkaz nepoužiješ, pak se použije defaultní nastavení. A zde je jádro problému. Na WZ a ve většině je standardně nastaveno kódování latin1. Což znamená, že data se neukládají v latin2, jak je nastaveno v tabulce, ale v latin1. PhpMyAdmin SET NAMES používá a nastavuje takové, které má tabulka nastaveno. Jelikož data jsou v latin1 a konvertor na latin2, tak určitě víš, co z toho vznikne. Na tvém webu se to jeví v pořádku, protože používá defaultní konvertor. Cos mu dal, to ti také dá.
Takže. Pro správné použití je potřeba na začátku vždy zadávat SET NAMES.
Pokud jde o export, tak to už bude problém. Většina exportních skriptů využívá SET NAMES, takže výsledek "znehodnotí". Jediné řešení je použít vlastní export, který bude brát v potaz tuto skutečnost.
Hm toho jsem se bál, díky moc za vyčerpávající odpověď. Tušil jsem, že s tím asi nic udělat nepůjde. Na jiném hostingu mi databáze funguje zcela zprávně, nezobrazují se tam otazníky místo ž a š. Je mi líto lidí, co mají na mysql založený celý web a pak je potká tenhle průser... Radost to pak řešit, kdyžž člověk přechází na jiný hosting. Nějak si to ošefuju. Ještě jednou díky
Je mi líto lidí, kteří používají MySQL.
Je asi velmi obtížné při každém otevření databáze zadat jako první dotaz SQL: "SET NAMES latin2;"
Kit: data to vypisuje dobre, ale v databazi jsou data spatne zapsana, tudis nemuzu data exportovat jinam. Teda muzu, akorad mam spatne diakritiku. Uz jsem databazi exportoval a ž a š jsem prepsal rucne :D Trvalo mi to asi hodku :)
Hodinu ručního přepisování? To bych raději 2 hodiny ladil program, který mi to překonvertuje :-)