Zpět na blog
    Proč se na mém webu místo českých písmen s háčky a čárkami zobrazují nesmyslné znaky? · 6 min čtení

    Problém s českými znaky na webu: Jak opravit rozsypané háčky a čárky (UTF-8 průvodce)

    2026-07-22

    Vidíte na svém webu místo českých znaků nesmyslné klikyháky? Nejste sami!

    Vidíte na svém webu místo českých znaků nesmyslné klikyháky? Nejste sami! Ukážeme vám, jak tento problém rychle a efektivně vyřešit a vrátit vašemu obsahu čitelnou podobu.

    Nezávazná poptávka

    Chcete web, který má přivádět poptávky?

    Pošlete krátké zadání a navrhnu, jak web upravit nebo postavit tak, aby návštěvník snáz udělal další krok.

    Zavolat

    Proč k tomu dochází?

    Představte si, že váš webový prohlížeč a server mluví každý jiným jazykem o tom, jak mají zobrazovat text. To je v podstatě příčinou problému s "rozsypaným čajem" – tedy s nesprávným zobrazením českých písmen jako š, č, ř, ž, ý, á, í, é, ť, ď, ň, ó, ú, ů.

    Celý problém tkví v takzvaném kódování znaků (character encoding). Když píšete text, počítač ho nevidí jako písmenka, ale jako řadu čísel. Kódování je pak jakýsi "překladový slovník", který říká, jakému číslu odpovídá které písmeno nebo symbol.

    V minulosti existovalo mnoho různých kódování. Pro češtinu bylo nejrozšířenější ISO-8859-2 (někdy označované jako Latin-2) a Windows-1250. Tyto systémy byly omezené a uměly kódovat jen určitou sadu znaků. Problém nastal, když se začaly míchat jazyky a země.

    Dnes je globálním standardem UTF-8. Jedná se o univerzální kódování, které dokáže obsáhnout prakticky všechny znaky ze všech jazyků světa. Díky němu se nemusíte bát, že se vám nezobrazí azbuka, čínské znaky nebo právě naše krásná čeština.

    A kde je tedy ten kámen úrazu? K problému dochází, když:

    1. Webový server nebo CMS systém odesílá data s informací, že používá jedno kódování (např. UTF-8).
    2. Ale samotný soubor s obsahem (HTML, CSS, PHP) nebo databáze, ze které se data tahají, je uložená v jiném kódování (např. Windows-1250).
    3. Nebo naopak: Soubory jsou v UTF-8, ale server nebo prohlížeč očekává něco jiného.

    Když se tento "jazyk" neshoduje, prohlížeč se snaží přečíst písmenka pomocí špatného slovníku a výsledkem je změť podivných symbolů, které s našimi háčky a čárkami nemají nic společného. Jde o častý problém, který může pokazit dojem z jinak profesionálního webu a zhoršit uživatelskou zkušenost. Naštěstí se dá ve většině případů poměrně snadno vyřešit.

    Jak to opravit krok za krokem

    Oprava kódování češtiny na webu vyžaduje zkontrolovat několik míst. Následujte tyto kroky, abyste zajistili, že vše mluví jedním, správným jazykem – UTF-8.

    1. Zkontrolujte meta tag v HTML hlavičce

    Toto je nejčastější a nejrychlejší místo pro kontrolu. Každá HTML stránka by měla v sekci <head> obsahovat informaci o kódování. Ujistěte se, že tam máte následující řádek:

    <meta charset="UTF-8">
    
    • Co dělat: Otevřete hlavní soubory vašeho webu (např. index.html, header.php nebo šablonové soubory vašeho CMS) v textovém editoru (např. Notepad++, Visual Studio Code). Najděte sekci <head> a zkontrolujte, zda je tag meta charset přítomen a správně nastaven na "UTF-8". Pokud tam je starší meta http-equiv="Content-Type" content="text/html; charset=windows-1250", změňte ho na novější a správný meta charset="UTF-8".

    2. Nastavení serveru pomocí .htaccess

    Soubor .htaccess je konfigurační soubor pro webové servery Apache, který umožňuje ovlivnit chování serveru pro konkrétní složku. Můžete jím vynutit odesílání informací o kódování pro všechny soubory.

    • Co dělat: Připojte se k FTP svému webhostingu a najděte soubor .htaccess v kořenovém adresáři vašeho webu (obvykle public_html nebo www). Pokud soubor nevidíte, je možné, že je skrytý (začněte s tečkou, takže ho některé FTP klienty nezobrazují, pokud to nemáte nastaveno). Otevřete ho a přidejte následující řádek:

      AddDefaultCharset UTF-8
      
    • Upozornění: Buďte opatrní při úpravách .htaccess, špatný zápis může způsobit nefunkčnost celého webu. Před úpravou si vždy soubor zálohujte.

    3. Uložení souborů v kódování UTF-8

    Není to jen o tom, co řekne server nebo HTML. Samotné soubory (HTML, CSS, JavaScript, PHP) musí být fyzicky uloženy v kódování UTF-8.

    • Co dělat: V kvalitním textovém editoru (doporučuji Notepad++, VS Code, Sublime Text, Brackets) otevřete všechny soubory, kde se objevuje text (zejména šablonové soubory, soubory s funkcemi, které vypisují text, apod.). V menu editoru najděte položku "Kódování" (Encoding) a zvolte "Převést na UTF-8" nebo "Uložit jako s kódováním UTF-8". Poté soubory nahrajte zpět na FTP.

      • Tip: Mnoho starších webů používá kódování Windows-1250. V takovém případě nejprve soubor otevřete s detekcí Windows-1250, zkontrolujte, že je text čitelný, a teprve poté jej přeuložte jako UTF-8.

    4. Kontrola a úprava databáze (MySQL/MariaDB)

    Pokud váš web používá databázi (což je dnes standard, například pro WordPress, e-shopy atd.), je klíčové, aby i databáze byla nastavena na UTF-8. Jinak se data z databáze budou vypisovat špatně.

    • Co dělat: Přihlaste se do nástroje pro správu databáze, jako je phpMyAdmin (dostupný přes webhostingové rozhraní).

      • Pro databázi: Vyberte svou databázi a v záložce "Operace" (Operations) zkontrolujte a případně změňte "Porovnávání" (Collation) na utf8mb4_unicode_ci nebo utf8_czech_ci. utf8mb4_unicode_ci je preferované, protože podporuje širší rozsah znaků (např. emoji).
      • Pro tabulky: Projděte jednotlivé tabulky databáze a pro každou z nich v záložce "Struktura" (Structure) zkontrolujte, zda je "Porovnávání" (Collation) nastaveno na utf8mb4_unicode_ci nebo utf8_czech_ci. Pokud ne, změňte je.
      • Pro sloupce: Uvnitř tabulek zkontrolujte i jednotlivé textové sloupce (typy VARCHAR, TEXT, LONGTEXT atd.), zda mají správné porovnávání.
    • Upozornění: Změna porovnávání databáze nebo tabulek může být citlivá operace. Před jakýmikoliv změnami si databázi zálohujte!

    5. Nastavení v CMS (WordPress, Joomla, apod.)

    Většina moderních redakčních systémů (CMS) jako WordPress, Joomla nebo Drupal, je ve výchozím nastavení připravena na UTF-8. Problém může nastat u:

    • Starších verzí CMS.

    • Špatně kódovaných šablon nebo pluginů.

    • Ručních zásahů do kódu.

    • Co dělat:

      • WordPress: Obvykle je vše v pořádku. Pokud máte problém, zkontrolujte soubor wp-config.php v kořenovém adresáři WordPressu. Měl by obsahovat define('DB_CHARSET', 'utf8mb4'); a define('DB_COLLATE', '');. Dále zkontrolujte, zda nemáte nějaký starý plugin, který by mohl kódování narušovat.
      • Ostatní CMS: Vždy se podívejte do systémových nastavení nebo konfiguračních souborů, zda tam není volba pro nastavení kódování, případně zda je váš systém aktuální.

    6. Kontrola PHP skriptů

    Pokud máte na webu vlastní PHP skripty, které generují HTML výstup, je dobré explicitně informovat prohlížeč o kódování.

    • Co dělat: Na začátek PHP souborů, které vypisují HTML obsah, přidejte následující řádek:

      <?php header('Content-Type: text/html; charset=utf-8'); ?>
      

      Tento řádek musí být proveden před jakýmkoliv jiným výstupem (např. před odesláním prázdné mezery nebo HTML tagu).

    Po provedení těchto kroků by se vám měly české znaky na vašem webu konečně zobrazovat správně. Někdy je potřeba vyčistit cache prohlížeče nebo cache na serveru, aby se změny projevily.

    Kdy je lepší svěřit to odborníkovi?

    Chápu, že ne každý se cítí jako ryba ve vodě v technickém nastavení serveru, editaci souborů přes FTP nebo v phpMyAdminu. Pokud se po přečtení výše uvedených kroků cítíte přetížení, nebo si nejste jisti, jakýkoliv zásah provést, je naprosto v pořádku vyhledat pomoc.

    Doporučuji svěřit řešení problému profesionálovi, pokud:

    • Nemáte zkušenosti s FTP nebo editací konfiguračních souborů. Špatná úprava .htaccess nebo wp-config.php může shodit celý web.
    • Máte obavy z práce s databází. Chybná manipulace v phpMyAdminu může vést ke ztrátě dat.
    • Už jste zkusili některé kroky a problém stále přetrvává. Někdy je příčina hlouběji a vyžaduje detailnější diagnostiku.
    • Nemáte čas se s tím trápit. Váš čas je cenný. Někdy je rychlejší a efektivnější nechat to na někom, kdo ví přesně, co dělá.
    • Váš web je klíčový pro vaše podnikání. Nechcete riskovat, že ho neodborným zásahem na delší dobu vyřadíte z provozu.

    Profesionál, jako jsem já, Vítek Hošek, dokáže problém rychle diagnostikovat a vyřešit, často i s ohledem na další optimalizaci vašeho webu. Mám bohaté zkušenosti s řešením podobných technických záhad a vrátím vašemu webu bezchybné zobrazení textu.

    Závěr

    Správné zobrazení českých znaků je základem profesionálního a důvěryhodného webu, který respektuje své návštěvníky. Pokud se v technických detailech ztrácíte nebo nemáte čas se s nimi trápit, neváhejte se obrátit na mě, Vítka Hoška. Rád vám pomohu s opravou i celkovou optimalizací vašeho webu – stačí navštívit jasnyweb.cz a poptat se na řešení!