Przejdź do głównej treści
LibraTool logoLibraTool

Koder i dekoder HTML za darmo

Koduj znaki specjalne do encji HTML lub dekoduj encje z powrotem do zwykłego tekstu. Natychmiastowo, w Twojej przeglądarce.

Działa offline po wczytaniu
Wynik:
Przykłady:
Zwykły tekst / HTML
Zakodowany HTML
Wynik pojawi się tutaj...
Ściągawka typowych encji HTML
&&
<&lt;
>&gt;
"&quot;
'&#39;
·&nbsp;
©&copy;
®&reg;
™&trade;
€&euro;
—&mdash;
…&hellip;

Typowe zastosowania

  • Koduj Zawartość dla Kanału RSSKoduj zawartość HTML dla opisów elementów kanału RSS — wymagane przez standard RSS 2.0.
  • Dezynfekuj Dane Wejściowe Użytkownika dla Danych Wyjściowych HTMLKoduj ciągi znaków dostarczone przez użytkownika przed wstawieniem ich do HTML — zapobiega atakom wstrzyknięcia XSS.
  • Koduj Znaki Specjalne do Email HTMLKoduj znaki takie jak &, <, > i © jako jednostki HTML, aby wyświetlały się prawidłowo we wszystkich klientach poczty.
  • Koduj Treść Użytkownika do Wyświetlania WebZapobiegaj atakom XSS poprzez kodowanie zawartości generowanej przez użytkownika przed renderowaniem na stronach HTML.
  • Koduj Zawartość do XMLKoduj znaki specjalne dla plików XML, kanałów RSS, map witryn i ładunków SOAP.

Jak to działa

Kodowanie i dekodowanie HTML działa tu w całości w przeglądarce, z użyciem ręcznie napisanych zamian przez wyrażenia regularne i wpisanej na stałe tabeli nazwanych encji — bez zewnętrznej biblioteki kodującej i odwołań do serwera. Do dekodowania rzadszych nazwanych encji (jak &aacute; czy &ldquo;) narzędzie korzysta z własnego parsera HTML przeglądarki jako bezkosztowego rozwiązania zapasowego.

  1. 1
    Wyrażenie regularne wyszukuje znaki do zamiany
    Przy kodowaniu na danych uruchamiane jest jedno z dwóch wyrażeń regularnych obsługujących Unicode: ukierunkowany wzorzec obejmujący ~25 popularnych znaków istotnych dla HTML i specjalnych lub szerszy wzorzec wyłapujący każdy punkt kodowy powyżej U+007F. Każde dopasowanie jest przechwytywane znak po znaku.
  2. 2
    Tabela lub codePointAt() tworzy encję
    Przy wyniku w postaci nazwanych encji dopasowane znaki są wyszukiwane we wpisanej na stałe tabeli (np. & → &amp;, © → &copy;). Przy wyniku dziesiętnym lub szesnastkowym String.codePointAt() pobiera punkt kodowy Unicode i formatuje go jako &#NNN; lub &#xNNN; — pary zastępcze są obsługiwane poprawnie, bo wyrażenie regularne używa flagi Unicode 'u'.
  3. 3
    Jeden przebieg wyrażenia regularnego dekoduje encje na znaki
    Przy dekodowaniu jeden przebieg wyrażenia regularnego rozpoznaje wszystkie tokeny encji (&amp;, &#65;, &#x41; itd.) i kieruje każdy do właściwej obsługi: parseInt przy podstawie 16 dla hex, Number() dla dziesiętnych, odwrotne wyszukiwanie dla nazwanych lub — dla encji spoza wpisanej tabeli — element textarea, którego innerHTML przeglądarka parsuje natywnie, zwracając właściwy znak z wbudowanej tabeli encji przeglądarki.
  4. 4
    Wynik pojawia się natychmiast; kopiowanie przez Clipboard API
    Wynik jest przeliczany synchronicznie przy każdym naciśnięciu klawisza przez useMemo Reacta. Kopiowanie używa navigator.clipboard.writeText() — nowoczesnego asynchronicznego Clipboard API — z cichą obsługą błędów w ograniczonych kontekstach.

Powiązane narzędzia

Często zadawane pytania