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? 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.
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!
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í".
· phpRS: Vytvaříme www stránku
· phpRS: Doladění pluginu guestbook
· phpRS: Kniha návštěv Guestbook
· phpRS: Jak zjistit verzi?
· phpRS: Měníme datum
· phpRS: Kódování v phpRS, poznatky (2)
· phpRS: Kódování v phpRS, poznatky (1)
| URL: | |
| BB-Code: | |
| HTML: | |
| Sdílet: |

Díky!OK!Zkoušel jsem. Val...