Kodowanie
HTML Entities Encode/Decode
Kodowanie i dekodowanie encji HTML — bezpieczne wyświetlanie znaków specjalnych na stronie.
HTML entities are a way to write characters that would otherwise break markup (<, >, &) or have no keyboard key, as safe text sequences like < or &. This tool encodes and decodes such entities right in your browser.
How to use it
- Encode: paste text and characters like <, >, &, and quotes get replaced with their matching entities.
- Decode: paste HTML containing entities (&, ©, etc.) to see the plain text.
- Both named entities (&) and numeric ones (& or &) are supported.
Common uses
- Safely displaying user text (a comment, a message) on a page without risking broken markup or an injected script.
- Embedding HTML code samples in an article or documentation so the browser shows them as text instead of rendering them.
- Decoding content copied from another site where the characters arrived already entity-encoded.
Things to keep in mind
HTML entity escaping only protects against XSS via a page's text content — it does not protect a JavaScript context (innerHTML, eval) or href/src attributes containing unvalidated URLs.
Encode exactly at the point where text gets inserted into HTML, not ahead of time when saving to a database — otherwise the data gets mangled when reused outside an HTML context.
Artykuł o tym narzędziu: HTML Entities: jak bezpiecznie wyświetlać znaki specjalne
Najczęstsze pytania
Czym są encje HTML i po co je stosować?
Encje HTML to zapis znaków specjalnych, które w kodzie HTML mają znaczenie strukturalne (np. < czy &), tak aby przeglądarka wyświetliła je jako zwykły tekst zamiast interpretować jako znacznik.
Jaka jest różnica między encjami nazwanymi a liczbowymi?
Encja nazwana, np. &, jest czytelna dla człowieka i obejmuje ograniczony zestaw znaków zdefiniowany w specyfikacji HTML. Encja liczbowa, np. & lub &, odwołuje się bezpośrednio do punktu kodowego Unicode i działa dla dowolnego znaku, niezależnie od tego, czy ma nazwaną wersję.
Czym różnią się tryby Podstawowe i Wszystkie znaki?
Tryb Podstawowe koduje tylko znaki istotne dla struktury HTML (jak <, >, & i cudzysłowy), natomiast tryb Wszystkie znaki zamienia na encje również znaki spoza ASCII, co bywa przydatne przy pracy ze starszymi systemami lub ograniczonym kodowaniem znaków.
Czy tekst w atrybucie trzeba escapować inaczej niż w treści strony?
Podstawowe znaki (<, >, &) escapuje się tak samo, ale wewnątrz atrybutu w cudzysłowie kluczowe jest dodatkowe escapowanie dokładnie tego typu cudzysłowu, którym ograniczony jest atrybut — inaczej wartość „urwie się" wcześniej niż oczekiwano.
Czy escapowanie HTML chroni przed wszystkimi rodzajami XSS?
Nie. Zamyka ono najpopularniejszy wektor — wstawianie tekstu do treści HTML, ale nie chroni przed XSS przez kontekst JavaScript (np. innerHTML z późniejszym wykonaniem kodu) czy niezwalidowane adresy URL w href/src.