Konwertery

Encje HTML: kodowanie i dekodowanie znaków specjalnych

Zamień znaki specjalne, takie jak < > & i cudzysłowy, na encje HTML albo zdekoduj encje z powrotem na tekst, także &#261; i &#x105;.

Obliczenia wykonuje Twoja przeglądarka. Wpisane dane nie są wysyłane na serwer.

Wpisz tekst po lewej, żeby go zakodować, albo wklej tekst z encjami po prawej, żeby go zdekodować.

Czym są encje HTML

Encja (w specyfikacji: odwołanie do znaku, character reference) to zapis znaku zaczynający się od& i kończący średnikiem. Standard HTML opisuje trzy rodzaje: nazwane, np.&lt;, dziesiętne, np. &#60;, i szesnastkowe, np.&#x3C;. Przeglądarka wyświetla w ich miejscu odpowiedni znak, a nie traktuje go jako część znacznika.

Encje a bezpieczeństwo

Jeśli tekst od użytkownika trafia do strony bez zmian, znak < może rozpocząć nowy znacznik, np. <script>. OWASP w ściądze o zapobieganiu atakom XSS zaleca, by przed wstawieniem danych do treści HTML zamienić pięć znaków na encje: &,<, >, " i '. Tryb „tylko znaki specjalne” robi dokładnie to. OWASP zaznacza, że inne miejsca strony, np. atrybuty z adresami URL czy kod JavaScript, wymagają innego kodowania.

Przykłady

ZnakTryb podstawowyDziesiętnieSzesnastkowo
&&amp;&amp;&amp;
<&lt;&lt;&lt;
>&gt;&gt;&gt;
"&quot;&quot;&quot;
'&#x27;&#x27;&#x27;
ąą&#261;&#x105;
€€&#8364;&#x20AC;
©©&#169;&#xA9;
spacja niełamiąca &#160;&#xA0;

Dekoder korzysta z parsera HTML wbudowanego w przeglądarkę, więc rozpoznaje wszystkie encje nazwane ze specyfikacji HTML, np. &nbsp;, &copy; czy&euro;, a także encje liczbowe. Parser nie uruchamia przy tym skryptów.

Najczęstsze pytania

Które znaki trzeba zamieniać na encje w HTML?

OWASP zaleca, by przy wstawianiu danych do treści HTML zamieniać pięć znaków: & na &amp;, < na &lt;, > na &gt;, " na &quot; i ' na &#x27;.

Czym różni się &#261; od &#x105;?

To ten sam znak ą zapisany jako encja liczbowa: dziesiętnie (kod 261) albo szesnastkowo (kod 0x105). Specyfikacja HTML dopuszcza oba zapisy.

Czy polskie znaki trzeba zamieniać na encje?

Na stronie zapisanej w UTF-8 polskie litery można wpisywać wprost. Tryb „wszystko poza ASCII” przydaje się, gdy tekst ma trafić do miejsca, które przyjmuje tylko znaki ASCII.

Źródła

  1. Cross Site Scripting Prevention Cheat Sheet, OWASP
  2. HTML Standard: 13.1.4 Character references, WHATWG
  • Konwertery

    Base64

    Zakoduj tekst lub plik w Base64 albo zdekoduj Base64 z powrotem, z obsługą polskich znaków (UTF-8), wariantu base64url i adresów data:.

  • Konwertery

    Timestamp Unix

    Zamień znacznik czasu Unix (sekundy, milisekundy, mikro- lub nanosekundy) na datę w dowolnej strefie czasowej albo datę na znacznik czasu.

  • Konwertery

    Kodowanie URL

    Zakoduj tekst do bezpiecznej postaci w adresie URL (np. spacja jako %20, ą jako %C4%85) albo zdekoduj zakodowany adres i rozłóż go na części oraz parametry.

  • Konwertery

    Systemy liczbowe

    Wpisz liczbę w dowolnym z czterech systemów, a konwerter pokaże ją w pozostałych, także dla bardzo dużych liczb i w kodzie uzupełnień do dwóch dla 8–64 bitów.

Niezbędne (zawsze włączone). Pamięć przeglądarki przechowuje wybrany motyw, polubione artykuły i Twoją decyzję o zgodzie. Nie używamy do tego plików cookies.