Encje HTML — kodowanie / dekodowanie
Zabezpiecz tekst dla HTML lub zamień encje typu & z powrotem na znaki
O tym narzędziu
Zabezpiecz tekst do bezpiecznego wstawienia w HTML — & zamienia się w &, < w < — albo zdekoduj tekst pełen encji z powrotem na czytelne znaki, obsługując encje nazwane (→), dziesiętne (©) i szesnastkowe (©) 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ą ' 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 (é) działają w każdym parserze HTML i XML. Encje nazwane są czytelniejsze, ale XML predefiniuje tylko pięć, więc é wywraca ścisły potok XML/XHTML. W razie wątpliwości: liczbowe.
- Dlaczego widzę w danych &#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ć.