onlinetools.dev

Encje HTML — kodowanie / dekodowanie

Zabezpiecz tekst dla HTML lub zamień encje typu & z powrotem na znaki

Działa lokalnie
loading…
O tym narzędziu

Zabezpiecz tekst do bezpiecznego wstawienia w HTML — & zamienia się w &amp;, < w &lt; — albo zdekoduj tekst pełen encji z powrotem na czytelne znaki, obsługując encje nazwane (&rarr;), dziesiętne (&#169;) i szesnastkowe (&#xA9;) odwołania liczbowe.

Kodowanie ma dwa poziomy: pięć kluczowych znaków rozbijających strukturę HTML (& < > " '), co w zupełności wystarcza do poprawności, albo wszystko poza ASCII, co przydaje się, gdy któreś ogniwo łańcucha narzędzi po drodze psuje UTF-8. Tryb wyłącznie liczbowy pomija encje nazwane dla maksymalnej zgodności ze ścisłymi parserami XML, które gwarantują tylko pięć predefiniowanych.

Codziennie częściej używa się połowy dekodującej: wklej zeskrobany fragment albo odpowiedź API najeżoną &#x27; i odbierz czysty tekst. Nieznane nazwy encji przechodzą nietknięte, zamiast być zgadywane.

Często zadawane pytania

Które znaki trzeba escapować w HTML?
W treści tekstowej: & oraz <. W wartościach atrybutów: dodatkowo znak cudzysłowu ograniczający atrybut (" albo '). Escapowanie > jest zwyczajowe, ale nie jest ściśle wymagane. Cała reszta może wystąpić dosłownie w dokumencie UTF-8.
Czy kodowanie encji chroni przed XSS?
Escapowanie pięciu znaków strukturalnych to trzon kodowania wyjścia w kontekście HTML, owszem — ale tylko dla tekstu HTML i wartości atrybutów. Adresy URL, łańcuchy JavaScriptu i CSS wymagają własnych kodowań właściwych dla swojego kontekstu; samo escapowanie encji nie czyni tam dowolnego wstrzyknięcia bezpiecznym.
Encje nazwane czy liczbowe — które emitować?
Odwołania liczbowe (&#xE9;) działają w każdym parserze HTML i XML. Encje nazwane są czytelniejsze, ale XML predefiniuje tylko pięć, więc &eacute; wywraca ścisły potok XML/XHTML. W razie wątpliwości: liczbowe.
Dlaczego widzę w danych &amp;#39; (podwójnie zakodowane)?
Dwie warstwy zakodowały po razie: znak & z pierwszego kodowania został sam zescapowany przy drugim przebiegu. Zdekoduj tutaj dwukrotnie, aby odzyskać tekst, a potem znajdź i napraw warstwę, która nie powinna kodować.
Powiązane narzędzia