MySQL 5 a české znaky
Mám problém s novou verzí MySQL, totálně blbnou české znaky, můžete se podívat na clanky.php, co z toho článku tato verze MySQL udělala za zrůdu. Nevím co chlapíci ze Švédska zase zmýšlají, ale nějak jim to blbne řekl bych, fakt mě nebaví se co půl roku učit nové věci ohledně kódování v MySQL.
Po připojení k databázi pošlu dotaz mysql_query(" SET NAMES utf8 ");
Databáze má znakovou sadu utf8_general_ci, tabulky v DB rovněž, sloupce utf8_czech_ci.
Data do DB dostávám přes phpMyAdmin 2.9.0.2 pomocí vyexportovaných SQL dotazů z programu MySQL Front 3.2.
<meta... charset=windows-1250" /> pro začátek utf-8 místo windows-1250
Tak jsem to zkusil a stránky mi na chvíli (než jsem to vrátil zpět) zmizely z očí. Nešly styly, titul okna nikde, veškerý text rozhozený ještě víc.
Vtip je v tom, že stránky máš v cp1250 a s databází komunikuješ v utf-8, takže máš kus stránek v cp1250 a kus v utf - jak se pak můžou zobrazit korektně? BTW šel bych spíš do utf-8 - jednak to není MS proprietární kódování a jednak je univerzální A ještě pokud to píšeš opravdu v PSPadu - vypni si nastavení Ident bity v utf-8 jinak ti to bude dávat do každého souboru v utf-8 BOM
Hmm, to není moc potěšující. Takže HTML není jedno odkud mu nastrčíš a poskládáš kód?
UTF-8 dělá hodně problémy v IE (ikdyž je tento prohlížeč dost strašný, používá jej nejvíc lidí). V PSPadu to píšu, ident. bity jsou asi defaultně vyplé, ale stejně tomu nerozumím.
Tzn. všeccho přehrabat do cp1250? To bych rád, ale budu to muset nějak vykoumat...
mám celé stránky v utf a nedělá mi to v IE (6,7) žádný problém, zkontroluj ty bity, protože jinak se na začátek každého souboru v utf připojí BOM značka a hapruje to v IE6 (zobrazí tu BOM značku), jinak není s utf sebemenší problém a upřednostnil bych ho před cp1250 !!! a nebo pokud stojíš o čistě české kódování použij mezinárodní standard iso-8859-2
OK, zkusím se podle tebe zařídit, takže ty ident. bity musím zapnout? A pak přeuložit všechny soubory?
NE, naopak vypnout, a pak přeuložit všechny soubory, pokud chceš pracovat s utf-8, u ostatních kódování ty bity nevadí...
Nastavení -> asi 3. shora -> Ident. byty v kódování UTF-8 - zrušit zaškrtnutí....
Je zrušeno (není zaškrtnuto)... Už to tak bylo. Takže to rozhození stránek v utf-8 asi nebylo tím.
to asi nebylo, protoze soubory ze kterych mas poskladany stranky jsou predpokladam v cp1250 jen k nim pridavas data z databaze v utf-8 a tam by nemel byt problem proste soubory i data z databaze musi mit stejne kodovani ale obavam se ze ani data v databazi nejsou taky uplne v utf-8 to by se aspon ty zobrazily spravne pri zmene kodovani...
Jo, to sice bylo vyplé, ale kódování bylo nastaveno na cp1250.
Tak fakt díky, zdá se, že už to faká jak má.
tak to jsem rád
Gratuluji vám oběma: jednak k vyřešení problému a hlavně k ukázkovému dialogu - slušně, věcně, jasně.
Od tebe to rád slyším... Dík
Do toho phpMyAdmina ten SQL dotaz kopíruješ přes schránku nebo nahráváš z textového souboru? Zkus to oběma způsoby, jedno z toho by mohlo pomoct.
Pomocí schránky, protože tam není nabídka Procházet na vložení souboru, jak to bývalo dřív. Nevím proč.
Část SQL souboru vypadá teď takto (po mnoha úpravách):
CREATE TABLE `clanky` (
`ID` int(11) NOT NULL auto_increment,
`nazev` varchar(255) character set utf8 collate utf8_czech_ci default NULL,
`clanek` text character set utf8 collate utf8_czech_ci,
`sekce` varchar(10) character set cp1250 default NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Ale radši bych to viděl pod cp1250, utf8 nějak nemám rád.