Přeskočit na obsah

HTML entity enkodér a dekodér

Vložte text nebo HTML kód a hned uvidíte jeho podobu s entitami. Funguje to i obráceně: z <p> nebo   dostanete zpět původní znaky.

Text se nikam neodesílá, vše se zpracovává ve vašem prohlížeči.

Jak používat HTML entity enkodér

  1. 1 Vyberte směr. Zakódovat změní znaky na entity, Dekódovat převede entity zpět na znaky.
  2. 2 Napište nebo vložte text. Výsledek se zobrazuje průběžně, nic není potřeba potvrzovat.
  3. 3 Při kódování si zvolte, zda se mají změnit jen znaky <, >, &, " a ', nebo i diakritika a symboly, a v jakém formátu mají entity být.
  4. 4 Výsledek zkopírujte tlačítkem Kopírovat. Tlačítkem Prohodit ho přesunete do vstupu a ověříte, že jde převést zpět.

Co nástroj umí

  • dekóduje všechny pojmenované entity z HTML5, kterých je přes 2 000, i číselné entity, přesně tak jako prohlížeč
  • správně převede i emoji, například &#128512; na 😀
  • upozorní, když text už entity obsahuje nebo byl zakódován dvakrát, a opravu nabídne jedním kliknutím
  • při kódování nabízí pojmenované, desítkové i šestnáctkové entity
  • zalomení řádků, tabulátory a ostatní text ponechá beze změny
  • vše zpracovává přímo ve vašem prohlížeči, nic se neodesílá na server

Co jsou HTML entity

HTML entita je zápis znaku pomocí běžných písmen a číslic. Začíná znakem & a končí středníkem: &lt; znamená znak < a &copy; znak ©. Entity potřebujete hlavně u znaků, které mají v HTML vlastní význam. Kdybyste do stránky napsali <b> přímo, prohlížeč by ho považoval za značku a následující text by zobrazil tučně. Zápis &lt;b&gt; se naopak zobrazí přesně jako <b>.

Z čeho se entita skládá
& začátek entity
copy název nebo číslo znaku
; konec entity
= ©

Jaký je rozdíl mezi HTML entitou a Unicode?

Unicode je celosvětová tabulka znaků, ve které má každý znak své číslo, například © má číslo 169 (U+00A9). HTML entita je jen způsob, jak takový znak zapsat do HTML kódu. Číselná entita &#169; přímo obsahuje číslo z Unicode, pojmenovaná &copy; je jeho čitelná zkratka. Na stránce v UTF-8 můžete znak napsat i přímo, výsledek je stejný.

Které znaky je v HTML nutné nahradit entitou

Na stránce v kódování UTF-8 musíte nahradit jen pět znaků. Ostatní, včetně diakritiky, můžete psát přímo. První z nich, &, se jmenuje ampersand. Vznikl spojením písmen latinského slova et, tedy „a“.

Znak Entita Kdy ho nahradit
& &amp; Vždy. Jinak se text za ním může přečíst jako entita, například &copy=2 se v textu stránky zobrazí jako ©=2.
< &lt; Vždy v textu. Prohlížeč by ho považoval za začátek značky.
> &gt; Není to povinné, ale nahrazuje se spolu se znakem <, aby byl kód čitelný.
" &quot; V hodnotě atributu v uvozovkách, například title="...".
' &#39; V hodnotě atributu v apostrofech, například title='...'.

Právě těchto pět znaků nahrazuje funkce htmlspecialchars v PHP a automatické escapování v šablonách Blade, Twig či React.

Pojmenované, desítkové a šestnáctkové entity

Tentýž znak lze zapsat třemi způsoby. Prohlížeč je zobrazí stejně, liší se jen zápisem.

  • Pojmenovaná entita jako &copy; se snadno čte, ale vlastní název má jen část znaků.
  • Desítková entita &#169; obsahuje číslo znaku v Unicode a funguje pro každý znak, i pro emoji.
  • Šestnáctková entita &#xA9; je totéž číslo v šestnáctkové soustavě, ve které se Unicode běžně uvádí, například U+00A9.
Znak Pojmenovaná Desítková Šestnáctková
© &copy; &#169; &#xA9;
→ &rarr; &#8594; &#x2192;
č &ccaron; &#269; &#x10D;
😀 bez názvu &#128512; &#x1F600;

U názvů entit záleží na velikosti písmen: &Rcaron; je velké Ř, &rcaron; malé ř.

Seznam HTML entit a speciálních znaků

Nejpoužívanější entity rozdělené do skupin. Kliknutím na entitu ji zkopírujete. Hledat můžete podle názvu, popisu, samotného znaku i podle čísla, například 8226.

Znak Pojmenovaná Desítková
ampersand (a)
menší než
větší než
uvozovky
apostrof
pevná (nezlomitelná) mezera
podmíněné dělení slova
mezera šířky písmene n
mezera šířky písmene m
úzká mezera
bez názvu úzká pevná mezera
mezera s nulovou šířkou

Znaky bez názvu, například ✔ nebo emoji, zapíšete jen číselnou entitou. Sloupec CSS obsahuje zápis pro vlastnost content, víc najdete v části o CSS a JavaScriptu.

Jak udělat odrážky v HTML?

Pro seznam s odrážkami použijte značky <ul> a <li>. Prohlížeč odrážky doplní sám a jejich tvar změníte v CSS, například list-style-type: square pro čtverečky nebo list-style-type: "✓ " pro fajfky. Entitu &bull; použijte jen tehdy, když odrážku potřebujete uvnitř řádku, například v patičce Kontakt &bull; Ochrana soukromí.

Jak napsat šipku v HTML, v CSS a na klávesnici

Nejpoužívanější šipky a trojúhelníky a všechny způsoby, jak je zapsat. Kód ze sloupce Word napište do dokumentu a hned za ním stiskněte Alt+X, Word ho změní na znak.

Znak HTML Windows Word
← &larr; Alt+27 2190
→ &rarr; Alt+26 2192
↑ &uarr; Alt+24 2191
↓ &darr; Alt+25 2193
↔ &harr; Alt+29 2194
▲ &#9650; Alt+30 25B2
▼ &#9660; Alt+31 25BC
⇒ &rArr; 21D2

Alt kód pište se stisknutým levým Altem na numerické klávesnici, číslice nad písmeny nefungují. Word navíc sám mění --> na →, <-- na ← a ==> na ⇒. Trojúhelníky ▲ a ▼ vlastní název entity nemají, proto je zapište číselně.

Jak napsat ©, ® a ™

Znaky copyright, registrovaná ochranná známka a ochranná známka se nejčastěji píšou do patičky webu. Takto je napíšete v HTML i v běžných programech:

Znak HTML Windows Mac Word
© HTML: &copy; Windows: Alt+0169 Mac: Option+G Word: (c)
® HTML: &reg; Windows: Alt+0174 Mac: Option+R Word: (r)
™ HTML: &trade; Windows: Alt+0153 Mac: Option+2 Word: (tm)

Zkratky pro Mac platí pro anglické rozložení klávesnice. Při jiném rozložení otevřete prohlížeč znaků zkratkou Ctrl+Cmd+mezerník a znak vyhledejte. Ve Wordu se (c), (r) a (tm) změní na symbol automaticky. Do patičky webu stačí napsat například &copy; 2026 Název firmy.

Jak napsat symbol, který není na klávesnici

Pokud symbol potřebujete vložit do běžného textu, ne do HTML kódu, entitu nepotřebujete. Ve Windows 10 a 11 otevřete panel se symboly a emoji zkratkou Win+tečka, na Macu zkratkou Ctrl+Cmd+mezerník. Symbol můžete také zkopírovat ze seznamu výše.

Pevná mezera &nbsp;

Pevná (nezlomitelná) mezera vypadá jako obyčejná, ale prohlížeč na ní nezalomí řádek. V češtině se používá hlavně tam, kde by zalomení působilo jako chyba:

v&nbsp;Praze
jednopísmenné předložky a spojky a, i, k, o, s, u, v, z nemají zůstat na konci řádku
10&nbsp;%
číslo a jednotka, procenta či měna, například 25 °C, 5 kg nebo 100 Kč
Ing.&nbsp;Novák
tituly a zkratky, například Ing. Novák nebo s. r. o.
1.&nbsp;ledna
data a řadové číslovky
10&nbsp;000
mezera oddělující tisíce

Na dlouhá slova v úzkých sloupcích se zase hodí &shy;, podmíněné dělení: prohlížeč v tom místě rozdělí slovo a přidá spojovník jen tehdy, když se slovo do řádku nevejde.

Jak vložit pevnou mezeru ve Wordu, v Excelu nebo na Macu

Word ve Windows
Ctrl+Shift+mezerník
Excel, PowerPoint a další programy ve Windows
Alt+0160 na numerické klávesnici
Mac
Option+mezerník ve většině programů
Dokumenty Google
Vložit, pak Speciální znaky a vyhledejte „no-break space“
Kdekoli
zkopírujte ji ze seznamu HTML entit výše kliknutím na znak

Proč se mi ve zprávě zobrazuje &nbsp;?

Pokud vám v e-mailu, SMS nebo v aplikaci přišel text s „&nbsp;“, nejde o zkratku ani o skrytý odkaz. Odesílatel nebo aplikace zkopírovali text z webové stránky a entitu pevné mezery nepřevedli na znak. Na jejím místě měla být obyčejná mezera. Stejně se může objevit &amp; místo znaku & nebo &quot; místo uvozovek. Pokud chcete čistý text, vložte ho do nástroje výše a zvolte Dekódovat.

Jak udělat více mezer v HTML

Prohlížeč sloučí několik mezer, tabulátorů a zalomení řádků za sebou do jedné mezery. Proto na stránce není vidět, kolik mezer jste napsali do kódu. Podle toho, co potřebujete, máte tyto možnosti:

Jan&nbsp;&nbsp;Novák
jedna či dvě pevné mezery mezi slovy, které se nesloučí
a&emsp;b
širší mezera, &ensp; má šířku písmene n a &emsp; šířku písmene m
p { text-indent: 2em; }
odsazení prvního řádku odstavce místo řady entit &nbsp;
.ikona { margin-right: 0.5rem; }
mezera mezi prvky, například mezi ikonou a textem
.kod { white-space: pre-wrap; }
zachová mezery a zalomení přesně tak, jak jsou v textu

Odsazovat či zarovnávat text řadou entit &nbsp; se nevyplatí: při jiné šířce obrazovky se rozložení rozpadne. Na rozložení stránky slouží CSS.

Jak udělat nový řádek a mezeru mezi řádky v HTML

Zalomení řádku v kódu zobrazí prohlížeč jako obyčejnou mezeru, stejně jako entitu &#10;. Nový řádek a větší mezery proto děláte jinak:

První řádek<br>Druhý řádek
nový řádek v rámci jednoho odstavce, například v adrese
<p>Odstavec</p>
nový odstavec, prohlížeč před ním a za ním přidá mezeru
p { line-height: 1.6; }
výška řádku, tedy mezera mezi řádky v odstavci
p { margin-bottom: 1.5em; }
mezera mezi odstavci
.adresa { white-space: pre-line; }
zachová zalomení řádků z textu, například z formuláře

Entita &#10; vytvoří nový řádek jen tam, kde se zalomení zachovávají: ve značkách <textarea> a <pre> nebo v atributu title, kde z ní vznikne dvouřádková bublina. Pokud hledáte symbol klávesy Enter, je to ↵ (&crarr;) nebo ⏎ (&#9166;).

Potřebuji entity pro diakritiku?

Ne, pokud má stránka kódování UTF-8, což je dnes standard. Stačí, aby v hlavičce bylo <meta charset="utf-8">, a písmena jako č, ř, ů či ž píšete přímo. Číselné zápisy jako &#345; se používaly v dobách kódování ISO-8859-2 a Windows-1250, kdy se diakritika na jiném počítači snadno změnila na nesmyslné znaky. Dnes se hodí jen výjimečně, například pro systém, který neumí zpracovat UTF-8, nebo když chcete mít ve zdrojovém kódu jen znaky ASCII. K tomu slouží volba Kódovat i diakritiku a symboly.

Diakritika se na webu zobrazuje špatně

Když se místo textu „Dřevěný stůl“ zobrazují podivné znaky, téměř vždy jde o nesoulad kódování. Podle toho, co přesně vidíte, zjistíte, kde je chyba:

Co vidíte Co se stalo Jak to opravit
DÅ™evÄ›ný stůl Text je v UTF-8, ale prohlížeč ho čte v západoevropském kódování Windows-1252 nebo ISO-8859-1. Jak to opravit: Do hlavičky stránky přidejte <meta charset="utf-8"> a zkontrolujte, zda server v hlavičce Content-Type neposílá jiné kódování.
DĹ™evÄ›nĂ˝ stĹŻl Text je v UTF-8, ale čte se ve středoevropském kódování Windows-1250, které používaly starší české a slovenské programy. Jak to opravit: Stejně jako výše: <meta charset="utf-8"> a správná hlavička Content-Type ze serveru.
D�ev�n� st�l Soubor je uložený ve starším kódování Windows-1250, ale stránka tvrdí, že je v UTF-8. Písmena s diakritikou se proto změní na znak �. Jak to opravit: Soubor uložte znovu v kódování UTF-8. Ve VS Code tuto volbu najdete ve stavovém řádku, v Poznámkovém bloku v okně Uložit jako.
D?ev?ný st?l Písmena se ztratila už při ukládání, například do databáze v kódování latin1, které je nezná. Otazníky jsou uložené natrvalo. Jak to opravit: Databázi, tabulky i připojení přepněte na utf8mb4 a text uložte znovu. Původní písmena z otazníků obnovit nejde.

Pokud místo písmene vidíte přímo kód jako &#345; nebo &scaron;, nejde o kódování, ale o dvojité zakódování entit. Řešení najdete v části o častých chybách.

HTML entity a bezpečnost (XSS)

Nahrazení znaků <, >, &, " a ' je základní ochrana před útokem XSS, při kterém útočník vloží do stránky vlastní skript. Když se vstup <script> zobrazí jako &lt;script&gt;, prohlížeč ho jen vypíše a nespustí. Má to však své hranice:

  • Entity chrání jen v textu stránky a v atributech, jejichž hodnota je v uvozovkách. Atribut bez uvozovek, například title=hodnota, lze prolomit i obyčejnou mezerou.
  • Nechrání v JavaScriptu, v CSS ani v adrese odkazu. Odkaz javascript:alert(1) neobsahuje nic, co by se kódovalo, a přesto spustí kód. Adresy z uživatelského vstupu proto kontrolujte zvlášť.
  • V atributech událostí, například onclick, prohlížeč entity dekóduje ještě před spuštěním kódu, takže tam před útokem nechrání.
  • Kódujte až při výpisu do HTML, ne při ukládání do databáze. Jinak se snadno stane, že text zakódujete dvakrát.
  • Nejbezpečnější je nechat kódování na šablonovacím systému, který to dělá automaticky, například Blade, Twig, React nebo Vue.

HTML entity v CSS a JavaScriptu

Entity fungují jen v HTML. V CSS a v řetězcích JavaScriptu se tentýž znak zapisuje jinak, zápis &rarr; by se tam zobrazil doslova. Takto vypadá šipka → v jednotlivých jazycích:

HTML
<span>&rarr;</span>  nebo  <span>&#8594;</span>
CSS
.dalsi::after { content: "\2192"; }
JavaScript
element.textContent = "\u2192";
JavaScript (emoji)
element.textContent = "\u{1F600}";

Zápis pro CSS najdete u každé entity v seznamu výše. Pokud za kódem v CSS následuje další písmeno od a do f nebo číslice, oddělte je mezerou, jinak se přečtou jako součást kódu.

Fungují HTML entity v Reactu a v Markdownu?

V Reactu entity v textu JSX fungují, <p>&copy; 2026</p> zobrazí ©. V řetězci ve složených závorkách však ne: {'&copy;'} se vypíše doslova. Tam napište přímo znak nebo jeho zápis v JavaScriptu, například {'\u00A9'}.

V Markdownu entity fungují, protože Markdown propouští HTML: &copy; se zobrazí jako ©. V bloku kódu se však vypíšou doslova, což se hodí, když entitu chcete ukázat. Stejně to platí na GitHubu i v dalších editorech Markdownu.

HTML entity v PHP, JavaScriptu a Pythonu

Ve většině jazyků není potřeba psát pro kódování entit vlastní kód. Takto to vypadá v těch nejpoužívanějších:

PHP

$text = 'Tom & Jerry <3';

echo htmlspecialchars($text, ENT_QUOTES | ENT_HTML5, 'UTF-8');
// Tom &amp; Jerry &lt;3

echo html_entity_decode('&lt;p&gt;&copy; 2026&lt;/p&gt;', ENT_QUOTES | ENT_HTML5, 'UTF-8');
// <p>© 2026</p>

Funkce htmlspecialchars kóduje jen pět speciálních znaků, htmlentities i diakritiku. S příznakem ENT_HTML5 zapíše apostrof jako &apos;, bez něj jako &#039;.

Kterou funkci v PHP použít

htmlspecialchars()
zakóduje pět speciálních znaků, pro bezpečný výpis do HTML to stačí
htmlentities()
zakóduje vše, co má pojmenovanou entitu, včetně diakritiky, na stránce v UTF-8 to není potřeba
htmlspecialchars_decode()
dekóduje zpět jen těch pět speciálních znaků
html_entity_decode()
dekóduje všechny entity, pojmenované i číselné

Od PHP 8.1 kódují obě funkce ve výchozím nastavení i apostrof a neplatné znaky UTF-8 nahradí znakem �. Ve starších verzích zadejte příznaky ENT_QUOTES | ENT_SUBSTITUTE ručně.

Časté chyby u HTML entit

Na stránce je vidět &amp; nebo &quot;

Text se zakódoval dvakrát, například při ukládání a znovu při výpisu. Z & vzniklo &amp; a z něj &amp;amp;. Nástroj takový text pozná a nabídne tlačítko Dekódovat ještě jednou. Natrvalo to vyřešíte tak, že budete kódovat jen na jednom místě, při výpisu.

Chybějící středník

Některé starší entity prohlížeč rozpozná i bez středníku. Text ?id=1&copy=2 se proto na stránce zobrazí jako ?id=1©=2. Znak & v textu i v odkazech proto zapisujte jako &amp;.

Entita &apos; ve starších prohlížečích

Entitu &apos; zná HTML5 a XML, v HTML 4 však neexistovala a například Internet Explorer 8 ji nezobrazil. Bezpečnější je zápis &#39;, který nástroj používá.

Entity v adrese URL

Mezery a diakritiku v adrese nenahrazujte entitami, ale procentovým kódováním, například %20. K tomu slouží URL enkodér. Pokud však odkaz s více parametry píšete do atributu href, znak & mezi nimi zapište jako &amp;.

Entity v JSON a JavaScriptu

V JSON ani v řetězcích JavaScriptu se entity nepřevádějí. Pokud API vrátí &quot; místo uvozovek, text byl pro HTML zakódován příliš brzy. Dekódujte ho a kódujte až při výpisu do stránky.

Neviditelná pevná mezera

Text zkopírovaný z Wordu nebo z webové stránky může obsahovat znak U+00A0. Vypadá jako mezera, ale vyhledávání či kontrola formuláře ho za mezeru nepovažuje. Zakódujte text s volbou Kódovat i diakritiku a symboly a každou takovou mezeru uvidíte jako &nbsp;.

FAQ

Co je HTML entita?

HTML entita je zápis znaku, který začíná znakem & a končí středníkem, například &lt; pro znak < nebo &copy; pro ©. Používá se pro znaky, které mají v HTML zvláštní význam, a pro znaky, které se nedají snadno napsat na klávesnici.

Jak napsat znak < nebo > do HTML?

Znak < zapište jako &lt; a znak > jako &gt;. Prohlížeč je pak zobrazí jako text a nebude je považovat za začátek či konec značky.

Co znamená &nbsp; v HTML?

&nbsp; je pevná (nezlomitelná) mezera. Vypadá jako běžná mezera, ale řádek se na ní nezalomí. V češtině ji použijete například za jednopísmennými předložkami (v&nbsp;Praze) nebo mezi číslem a jednotkou (10&nbsp;%).

Jaký je rozdíl mezi pojmenovanou a číselnou entitou?

Pojmenovaná entita používá název, například &euro;. Číselná obsahuje číslo znaku v Unicode, buď desítkově &#8364;, nebo šestnáctkově &#x20AC;. Prohlížeč zobrazí všechny tři stejně, ale číselnou entitu má každý znak, pojmenovanou jen některé.

Jak zapsat šipku, fajfku nebo hvězdičku v HTML?

Šipka doprava je &rarr;, fajfka &check; a plná hvězdička &starf;. Tučná fajfka ✔ vlastní název nemá, zapíšete ji jako &#10004;. Další najdete v seznamu HTML entit na této stránce, kde je zkopírujete jedním kliknutím.

Musím v HTML kódovat diakritiku?

Nemusíte, pokud má stránka kódování UTF-8 a v hlavičce <meta charset="utf-8">. Písmena jako č, ř, ů či ž pak píšete přímo. Entity pro diakritiku se hodí jen pro systémy, které UTF-8 nepodporují.

Proč nástroj zapisuje apostrof jako &#39; a ne &apos;?

Entita &apos; v HTML 4 neexistovala, takže ji starší prohlížeče, například Internet Explorer 8, nezobrazily. Zápis &#39; funguje všude. PHP při výchozím nastavení používá stejný číselný zápis ve tvaru &#039;.

Jak použít HTML entitu v CSS ve vlastnosti content?

V CSS entity nefungují. Znak zapíšete pomocí zpětného lomítka a jeho kódu v šestnáctkové soustavě, například šipku jako content: "\2192";. Kód pro CSS najdete u každé entity v seznamu na této stránce.

Chrání kódování HTML entit před XSS?

Ano, pokud text vkládáte do obsahu stránky nebo do atributu v uvozovkách. Nechrání však v JavaScriptu, v CSS ani v adresách odkazů. Nejlepší je nechat kódování na šablonovacím systému, který to dělá automaticky.

Proč se mi na stránce zobrazuje &amp; nebo &quot;?

Text byl zakódován dvakrát. Vložte ho do nástroje, zvolte Dekódovat a pokud ve výsledku zůstanou entity, klikněte na Dekódovat ještě jednou. V kódu pak najděte místo, kde se text kóduje navíc.

Co znamená &#39;, &#8226; nebo &#160;?

Jsou to číselné entity. Číslo udává pořadí znaku v Unicode: &#39; je apostrof ', &#8226; odrážka • a &#160; pevná mezera. Další čísla najdete v seznamu HTML entit na této stránce, stačí číslo napsat do vyhledávání. Celý text s entitami zase převedete v dekodéru.

Jak udělat více mezer v HTML?

Prohlížeč více mezer za sebou sloučí do jedné. Mezi slova proto vložte pevnou mezeru, například slovo&nbsp;&nbsp;slovo. Na odsazení odstavce a mezery mezi prvky stránky však použijte CSS, například text-indent nebo margin.

Odesílají se moje texty na server?

Ne. Kódování i dekódování probíhá přímo ve vašem prohlížeči, text nikam neodchází.