Koder i dekoder encji HTML

Escapuj tekst, aby można go było bezpiecznie umieścić w HTML, lub zamieniaj encje, takie jak & i €, z powrotem na czytelne znaki.

Działa w przeglądarceBez rejestracjiNic nie jest wysyłane

Zakodowane

Jak używać: Koder / dekoder encji HTML

  1. Wybierz Koduj, aby escapować tekst, lub Dekoduj, aby zamienić encje z powrotem na znaki.
  2. Przy kodowaniu wybierz, które znaki escapować: tylko specjalne znaki HTML, dodatkowo wszystkie znaki spoza ASCII lub wszystko oprócz liter i cyfr.
  3. Wybierz encje nazwane (é), dziesiętne (é) lub szesnastkowe (é).
  4. Skopiuj wynik. Przy dekodowaniu nieznane encje są wypisywane, abyś mógł wychwycić literówki.

Po co escapować HTML?

Pięć znaków ma w HTML specjalne znaczenie: & rozpoczyna encję, < i > ograniczają znaczniki, a " i ' zamykają wartości atrybutów. Jeśli tekst od użytkownika zawierający te znaki trafi na stronę bez escapowania, może zepsuć układ lub, co gorsza, wstrzyknąć skrypty (cross-site scripting, XSS). Escapowanie zamienia je na &amp;, &lt;, &gt;, &quot; i &#x27;, które przeglądarka wyświetla jako tekst.

Encje nazwane, dziesiętne i szesnastkowe

Każdy znak Unicode można zapisać jako odwołanie numeryczne: dziesiętne &#8364; lub szesnastkowe &#x20AC; dla €. Wiele popularnych znaków ma też czytelną nazwę, np. &euro;, &copy; lub &nbsp;. Odwołania numeryczne działają wszędzie, także w XML, który definiuje tylko pięć encji nazwanych. Encje nazwane łatwiej czytać w kodzie źródłowym.

Czy muszę kodować znaki spoza ASCII?

Nie, jeśli strona jest serwowana w UTF-8, jak niemal każda nowoczesna witryna (<meta charset="utf-8">). Znaki takie jak é, ü czy 日本 można pisać bezpośrednio. Kodowanie ich przydaje się w starszych systemach, szablonach e-maili lub gdy jakiś proces psuje tekst spoza ASCII.

Escapowanie zależy od kontekstu

Escapowanie encji HTML chroni tekst umieszczony w treści elementów i atrybutach w cudzysłowach. Nie wystarcza dla wartości w blokach <script>, inline’owych handlerach zdarzeń, CSS czy URL-ach – każde z nich wymaga własnego kodowania. Preferuj automatyczne escapowanie frameworka (React, Vue, Jinja, Blade) zamiast ręcznego sklejania ciągów.

Najczęściej zadawane pytania

Które znaki trzeba escapować w HTML?
W treści tekstowej niezbędne są & i <. W wartościach atrybutów escapuj też użyty cudzysłów. Escapowanie wszystkich pięciu (& < > " ') to bezpieczny wybór domyślny.
Czym jest &amp;nbsp;?
To spacja nierozdzielająca (U+00A0). Wygląda jak spacja, ale zapobiega łamaniu linii i nie jest scalana z sąsiednimi spacjami.
Dlaczego &amp;copy2024 dekoduje się do ©2024?
Dla kompatybilności wstecznej przeglądarki dekodują kilka starszych encji, np. &copy, &amp i &lt, nawet bez końcowego średnika. Ten dekoder stosuje tę samą regułę. We własnym HTML zawsze pisz średnik.
Apostrof to &amp;apos; czy &amp;#39;?
&apos; jest poprawne w HTML5 i XML, ale nie w HTML 4, więc numeryczne &#39; lub &#x27; to najbardziej kompatybilny wybór – i to właśnie generuje ten koder.

Powiązane narzędzia