
Abych nebyl napadán, že dělám nějaké schválosti, podělím se o zdejší "průšvih" s rozpadlým českým kodováním u článků. Při upgrade na vyšší verzi phpRS 2.8.1 došlo na sereru k bezproblémové konverzi. Avšak kódování UTF-8 se v češtině chybně zobrazuje! Nastal enormní výskyt "otazníků" u znaku s diakritikou. Co s tím?
Jak se můžeme dovědět na v 10. kapitole MySQL, od verze 4.1 je tento serverový systém poněkud změněn. Změny se tákají především jiného přístupu k mezinárodním znakovým sadám, jejich kódování a řazení.
První zajimavostí jsou přípony. Přípona "ci", a tedy Case Insensitive, znamená řazení bez ohledu na velikost písmen. Naopak přípona cs Case Sensitive, znamená řazení, rozlišování velikosti písmen. Největší problém představuje staré kódování latin1_swedish_ci , které má znaky v ISO-8859-2, případně Windows CP1250.
Většina poskytovatelů webhostingu přistoupila k praxi, že od verze MySQL 4.1 nenastavují defaultní znakové sady (tzn. Latin1). A to přináší uživatelům (webmasterům) různá uskalí. Stálo by za diskuzi, proč provideři trpí v tabulkách starou vykopávku kódování, tedy latin1_swedish_ci , která je defaultní ve Švédsku, domovině MySQL. Z úcty před tvůrcem a výrobcem. Dost mědvědí služba, nezdá se vám?
Jak nastavíme kódování
A tedy, aby nám kódování vyhovovalo pro češtinu, musíme si správnou funkci českých znaků pro naši databázi nastavit sami. A to není tak jednoduchá záležitost!! Musíme zvolit takovou znakovou sadu v níž je naše databáze kódována. Optimální nastavení je v kódování UTF-8. Proč, doporučuji všem, jelikož si nemusíme dělat starosti s malými a velkými písmena a rovněž řazení je bezproblémové. Jak na to? Prostým SQL příkazem, v tomto případě pro DB "pcpolitika". nastavím výchozí kódování ve windows-1250 (cp1250) tudíž české třídění, které rozlišuje velikost pímen.
ALTER DATABASE pcpolitika
DEFAULT CHARACTER SET cp1250
DEFAULT COLLATE cp1250_czech_cs;
A ještě příklad nastavení znakové sady UTF-8 pro české třídění, které nerozlišující velikost písmen a nedělá tolik problémů. Údajně zabírá více místa. Přesto je doporučováno pro všechny servery. Rovněž na pc-politice nastaveno!
ALTER DATABASE pcpolitika
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_czech_ci;
Záludnosti?
Bohužel, přesto jsou a hladce se ke správné funkci českého kodování nedostávám. I přes toto nastavení v DB (phpMyAdminu) na serveru, české kódování u článků zde na serveru nefunguje. Při převodu verzí byly totiž články záhadně přepsány starým švédským kódováním. Takže - nově nastavené kódování UTF tuto znakovou sadu nebere a ve větách textu jsou ty nepříjemné "otazníky".
Resumé
Problém tedy ještě zdaleka nekončí. Bude nutné uložit celý soubor rs_clanky.sql v nějakém schopném editoru (PSPad, PHPIDE) do formátu kódování "UTF-8". Poté otevřít "phpMyAdmin", tudíž DB na ostrém serveru, nastavit přenášený soubor rovněž na UTF-8, včetně COLLATE a pak provést IMPORT. Zítra otestuji, jak to dopadne. O tom a ještě o dalším způsobu - napsání COLLATE za obvykle DB a tabulkové příkazy v dalším pokračování "pátrání po správném českém kódování".
Zatím nikdo nekomentoval. Buďte proto první a vložte svůj komentář.
Aby jste mohli přidávat komentáře, musíte být přihlášený.
Musíte být registrovaný, aby jste mohli hodnotit.
Prosím přihlašte se, a nebo se zaregistrujte.
Zatím nikdo nehodnotil.