Skip to content

Darmowy dekoder encji HTML — unescape HTML

Dekoduj encje HTML i unescape HTML online — za darmo, bez rejestracji, w 100% w przeglądarce. Zamienia odwołania nazwane, dziesiętne & szesnastkowe z powrotem na znaki; nic nie jest wysyłane.

Bez śledzenia Działa w przeglądarce Bezpłatne

Twój tekst jest dekodowany lokalnie w przeglądarce i nigdy nie jest wysyłany, rejestrowany ani przechowywany. Pozostaje na tym urządzeniu.

0 znaków
Zdekodowany HTML / tekst
0 znaków
Sprawdzono pod kątem poprawności specyfikacji dekodowania encji (rozwijanie nazwanych / dziesiętnych / szesnastkowych), odtwarzania płaszczyzn astralnych i emoji, tolerancyjnego parsowania starszych encji, ryzyka XSS przy renderowaniu zdekodowanego niezaufanego tekstu (oraz łagodzących je wskazówek o ponownym escape), prywatności danych wejściowych bez sieci i bez przechowywania oraz dostępności (oznaczone kontrolki, ogłoszenia obszaru na żywo przy dekodowaniu i kopiowaniu). — Zespół ds. kodowania Go Tools · Jun 17, 2026

Czym jest dekodowanie encji HTML?

Dekodowanie encji HTML — zwane też unescape HTML — to proces zamiany odwołań znakowych z powrotem na znaki, które reprezentują. Tam gdzie kodowanie zastępuje dosłowny < encją <, aby przeglądarka wyświetliła go jako tekst, dekodowanie robi odwrotnie: skanuje ciąg w poszukiwaniu odwołań jak <, &, <, > czy © i zastępuje każde rzeczywistym znakiem (<, &, <, >, ©). To operacja, którą uruchamiasz, gdy masz składnię zapisaną lub przesłaną w postaci po escape i potrzebujesz z powrotem prawdziwego tekstu — by go odczytać, edytować, przekazać innemu programowi lub ustalić, dlaczego strona renderuje &lt; zamiast <.

Warto być precyzyjnym co do tego, co robi to narzędzie. Dekoduje encje na znaki; nie reformatuje ani nie waliduje składni. Jeśli chcesz wziąć ciąg po escape i odzyskać jego dosłowne znaki, to właściwe narzędzie. Aby pójść w drugą stronę i zamienić znaki na encje, użyj kodera encji HTML; a aby wciąć i uporządkować blok HTML, użyj formatera HTML. Kodowanie i dekodowanie są dokładnie odwrotne, więc ciąg przepuszczony przez koder i z powrotem przez dekoder wraca bez zmian.

Istnieją trzy rodzaje odwołań, które dekoder musi rozumieć, i obsługuje je wszystkie. Odwołanie nazwane używa zdefiniowanej etykiety (< dla <, © dla ©, — dla —); dziesiętne odwołanie liczbowe zapisuje punkt kodowy Unicode w systemie dziesiętnym (< dla <); a szesnastkowe odwołanie liczbowe zapisuje ten sam punkt kodowy w systemie szesnastkowym (< dla <), odpowiadając notacji U+XXXX standardu Unicode. Solidny dekoder przyjmuje dowolne z nich, w dowolnej kombinacji, bo różne kodery zwracają różne formy. Tabela poniżej pokazuje odwołania, które spotkasz najczęściej, oraz znak, na który każde z nich się dekoduje:

| Encja (nazwana) | Dziesiętna | Szesnastkowa | Dekoduje się na | |----------------|---------|-----|------------| | &lt; | &#60; | &#x3C; | < | | &gt; | &#62; | &#x3E; | > | | &amp; | &#38; | &#x26; | & | | &quot; | &#34; | &#x22; | " | | &#x27; | &#39; | &#x27; | ' | | &nbsp; | &#160; | &#xA0; | (spacja niełamiąca) | | &copy; | &#169; | &#xA9; | © | | &reg; | &#174; | &#xAE; | ® | | &trade; | &#8482; | &#x2122; | ™ | | &euro; | &#8364; | &#x20AC; | € | | &pound; | &#163; | &#xA3; | £ | | &mdash; | &#8212; | &#x2014; | — | | &ndash; | &#8211; | &#x2013; | – | | &hellip; | &#8230; | &#x2026; | … | | &#x1F600; | &#128512; | &#x1F600; | 😀 |

Dwa zachowania wyróżniają staranny dekoder. Po pierwsze, odtwarza znaki z płaszczyzn astralnych — wszystko powyżej U+FFFF, w tym większość emoji — z ich odwołań liczbowych, zamiast tworzyć uszkodzony pół-znak; 😀 poprawnie staje się 😀. Po drugie, stosuje tolerancyjne parsowanie przeglądarki dla niewielkiego zbioru starszych encji nazwanych, które historycznie pojawiały się bez kończącego średnika, więc &copy 2026 wciąż dekoduje się do © 2026, mimo że ścisły XML by to odrzucił. To narzędzie robi obie te rzeczy, odpowiadając zachowaniu szeroko używanej biblioteki he, więc jego wynik zgadza się z tym, co wyrenderowałaby prawdziwa przeglądarka.

Słowo ostrzeżenia, które należy się każdemu dekoderowi: zdekodowany tekst jest z definicji niepoddany escape. Dekodowanie jest odwrotnością escape, który chroni strony przed cross-site scripting, więc zdekodowany ciąg zawierający znacznik <script> lub procedurę obsługi zdarzeń jest ponownie aktywną, niebezpieczną składnią. Nigdy nie dekoduj niezaufanych danych, a następnie nie wstawiaj ich na stronę przez innerHTML — to ponownie otwiera dokładnie tę lukę, którą kodowanie miało zamknąć. Dekoduj, gdy potrzebujesz surowych znaków do odczytu, edycji lub przechowania; jeśli wynik będzie renderowany z powrotem do HTML, najpierw ponownie poddaj go escape w jego kontekście docelowym. A ponieważ każdy bajt jest przetwarzany w Twojej przeglądarce, ciągi po escape, które dekodujesz — nawet prywatny rekord czy nieopublikowany szkic — nigdy nie przechodzą przez sieć. Przy sąsiednich konwersjach koder / dekoder URL obsługuje kodowanie procentowe, a Base64 koder / dekoder obsługuje bezpieczny binarnie transport.

// Decoding is the inverse of escaping. The classic round-trip:
//   &lt;  →  <     &gt;  →  >     &amp;  →  &     &quot;  →  "     &#x27;  →  '

// Browser — the safest decoder is the platform itself. Use textarea, NOT innerHTML on a live node,
// so the decoded markup is never executed.
function decodeHtml(str) {
  const ta = document.createElement('textarea');
  ta.innerHTML = str;        // the parser resolves entities into text
  return ta.value;           // .value is plain text — no script runs
}

decodeHtml('&lt;div&gt; &amp; &copy;');   // → '<div> & ©'
decodeHtml('&#60;&#x3E;');                // → '<>'
decodeHtml('&#x1F600;');                 // → '😀'
decodeHtml('&copy 2026');                // → '© 2026'  (lenient, no semicolon)

// ---------------------------------------------------------------
// SECURITY: decoded text is unescaped. Never do this with untrusted input:
//   el.innerHTML = decodeHtml(userInput);   // ❌ reopens the XSS hole
// If the decoded value must be displayed, re-escape it in its destination context first,
// or assign it as text:
//   el.textContent = decodeHtml(userInput); // ✅ shown as literal text

// ---------------------------------------------------------------
// Node.js (no DOM) — use a tested library such as he:
//   import { decode } from 'he';
//   decode('&lt;div&gt; &amp; &copy;');     // → '<div> & ©'

Kluczowe funkcje

Dekoduje odwołania nazwane, dziesiętne i szesnastkowe

Rozwija pełny zestaw encji nazwanych HTML5 (<, ©, —), dziesiętne odwołania liczbowe (<) i szesnastkowe odwołania (<) w dowolnej kombinacji, dokładnie tak jak przeglądarka — więc odwraca cokolwiek wygenerował koder.

Obsługuje emoji i znaki z płaszczyzn astralnych

Odwołania liczbowe powyżej U+FFFF są odtwarzane do pełnego punktu kodowego, więc 😀 dekoduje się do 😀, a nie do uszkodzonej pary zastępczej. Rzadkie ideogramy CJK i symbole matematyczne również dekodują się wiernie.

Tolerancyjne parsowanie starszych encji

Stosuje zgodne wstecznie reguły przeglądarki dla encji nazwanych bez kończącego średnika, więc starsza lub niechlujna składnia jak &copy 2026 wciąż dekoduje się do © 2026 tam, gdzie ścisły parser pozostawiłby ją uszkodzoną.

Dekodowanie na żywo, natychmiastowe

Wynik aktualizuje się podczas pisania — bez przycisku zatwierdzania, bez opóźnień obiegu sieciowego. Wklej duży blok po escape, a odzyskany tekst pojawi się od razu, gotowy do skopiowania.

Wbudowany szybki przegląd encji

Tabela referencyjna mapująca najczęstsze encje — pięć zarezerwowanych plus ©, ®, ™, €, —,   i więcej — na ich znaki znajduje się bezpośrednio na stronie, dzięki czemu nigdy nie musisz szukać encji gdzie indziej.

Zamiana na koder jednym kliknięciem

Zamień kierunek przeskakuje prosto do kodera encji HTML, aby odwrócić operację. Kodowanie i dekodowanie są dokładnie odwrotne, więc możesz przepuszczać tekst tam i z powrotem bez strat.

W 100% prywatne, tylko w przeglądarce

Całe dekodowanie odbywa się na Twoim urządzeniu w JavaScripcie — bez żądań sieciowych, bez rejestrowania, bez przechowywania, co można sprawdzić w Narzędziach deweloperskich → Sieć. Prywatne fragmenty z bazy danych, treści e-maili i nieopublikowane szkice nigdy nie opuszczają karty.

Dostępne w 15 językach

Cały interfejs — etykiety, instrukcje i wskazówki — jest zlokalizowany w 15 językach, więc narzędzie i jego porady dotyczące bezpieczeństwa są zrozumiałe niezależnie od tego, gdzie pracuje Twój zespół.

Przykłady z omówieniem

Dekodowanie mieszanki encji nazwanych

&lt;div&gt; &amp; &copy;
<div> & ©

Dekoder rozwija każde odwołanie nazwane na znak, który reprezentuje: < staje się <, > staje się >, & staje się &, a © staje się znakiem praw autorskich ©. To codzienny przypadek — wzięcie ciągu, który został zapisany lub przesłany w postaci po escape, i zamienienie go z powrotem na prawdziwe znaki, abyś mógł odczytać, edytować lub ponownie przetworzyć składnię. Dekodowanie jest dokładnym odwróceniem kodowania, więc ciąg przepuszczony przez koder i z powrotem dociera bez zmian.

Dekodowanie odwołań liczbowych dziesiętnych i szesnastkowych

&#60;&#x3E;
<>

Liczbowe odwołania znakowe działają w obu systemach: < to forma dziesiętna punktu kodowego 60, czyli <, a > to forma szesnastkowa punktu kodowego 62, czyli >. Dekoder obsługuje odwołania dziesiętne (&#NNN;) i szesnastkowe (&#xHHH;) wymiennie, rozwijając każde na jego znak Unicode. Ma to znaczenie, bo kodery nie zgadzają się co do tego, którą formę zwracać — niektóre wolą dziesiętną, inne szesnastkową — a solidny dekoder musi przyjmować obie.

Dekodowanie starszej encji bez średnika

&copy 2026
© 2026

Starszy HTML pozwalał, by niewielki zbiór encji nazwanych pojawiał się bez kończącego średnika, a przeglądarki nadal je rozwijają dla zgodności wstecznej — &copy 2026 renderuje się jako © 2026. Ten dekoder stosuje te same tolerancyjne reguły parsowania, więc odzyskuje zamierzony znak z niechlujnej lub starszej składni, którą ścisły parser pozostawiłby nietkniętą. Jeśli debugujesz tekst, który pokazuje błąkające się &copy, to właśnie dlatego.

Dekodowanie emoji z jego odwołania szesnastkowego

&#x1F600;
😀

Odwołania liczbowe nie ograniczają się do podstawowej płaszczyzny wielojęzycznej — 😀 to szesnastkowe odwołanie do punktu kodowego U+1F600, emoji uśmiechniętej twarzy 😀. Dekoder poprawnie odtwarza znaki z płaszczyzn astralnych (wszystko powyżej U+FFFF) z ich odwołań liczbowych, więc emoji, rzadkie ideogramy CJK i symbole matematyczne dekodują się wiernie, zamiast zamieniać się w uszkodzoną parę zastępczą lub glif zastępczy.

Dekodowanie ciągu atrybutu po escape

&lt;a href=&quot;x&quot;&gt;Tom &amp; Jerry&#x27;s&lt;/a&gt;
<a href="x">Tom & Jerry's</a>

To pełny obieg sztandarowego przykładu kodera. " rozwija się na cudzysłów podwójny, ' (zgodny liczbowy apostrof) rozwija się na ', a encje nawiasów kątowych i ampersanda rozwijają się na swoje dosłowne znaki, odtwarzając dokładnie oryginalne Tom & Jerry's. Ponieważ dekoder przyjmuje odwołania nazwane, dziesiętne i szesnastkowe w dowolnej kombinacji, odwraca cokolwiek wygenerował koder, niezależnie od użytego stylu encji.

Jak używać dekodera encji HTML

  1. 1

    Wklej ciąg po escape

    Wrzuć tekst pełen encji HTML do pola wejściowego. Zdekodowane znaki aktualizują się na żywo podczas pisania — nie ma przycisku zatwierdzania i nic nie jest nigdzie wysyłane.

  2. 2

    Odczytaj zdekodowany wynik

    Odwołania nazwane, dziesiętne i szesnastkowe rozwijają się automatycznie na znaki, które reprezentują, w tym emoji i inne punkty kodowe z płaszczyzn astralnych. Nie trzeba wybierać formatu — dekoder wykrywa typ każdego odwołania.

  3. 3

    Skopiuj zdekodowany tekst

    Kliknij Kopiuj, by umieścić odzyskane znaki w schowku, gotowe do wklejenia w edytor, bazę danych lub inne narzędzie. Wyczyść resetuje oba panele dla kolejnego ciągu.

  4. 4

    Ponowny escape przed ponownym wyświetleniem niezaufanego tekstu

    Jeśli zdekodowany wynik będzie renderowany z powrotem na stronie internetowej, a cokolwiek z niego pochodziło z niezaufanego źródła, najpierw ponownie poddaj go escape koderem, aby uniknąć ponownego otwarcia luki XSS.

  5. 5

    Chcesz zakodować zamiast tego? Zamień kierunek

    Użyj „Zamień kierunek”, by przełączyć się na koder encji HTML, gdy chcesz zamienić surowe znaki na encje.

Częste błędy przy dekodowaniu HTML

Wyrenderowano zdekodowane niezaufane dane przez innerHTML

Dekodowanie usuwa escape z tekstu, więc zdekodowany znacznik <script> jest ponownie aktywną składnią. Wstawienie go przez innerHTML wykonuje go — to podręcznikowa luka XSS. Ponownie poddaj escape zdekodowany niezaufany tekst lub użyj textContent.

✗ Niepoprawne
el.innerHTML = decode(userInput)  →  script runs (XSS)
✓ Poprawne
el.textContent = decode(userInput)  →  shown as text

Zdekodowano tylko raz, gdy tekst był podwójnie zakodowany

Podwójnie zakodowany tekst wymaga dwóch przejść dekodowania. Zdekodowanie &lt; raz daje <, a nie <. Zdekoduj ponownie — i napraw potok, aby nigdy nie kodował podwójnie.

✗ Niepoprawne
&amp;lt;  decoded once  →  &lt;  (still an entity)
✓ Poprawne
&amp;lt;  decoded twice  →  <

Pomylono dekodowanie HTML z dekodowaniem URL lub Base64

Encje, kodowanie procentowe i base64 to różne schematy. Dekoder HTML nie zamieni %20 na spację ani nie zdekoduje bloku base64. Użyj pasującego narzędzia do każdej warstwy kodowania.

✗ Niepoprawne
HTML-decode "%3Cdiv%3E"  →  unchanged, still percent-encoded
✓ Poprawne
URL-decode "%3Cdiv%3E"  →  <div>

Użyto wyrażenia regularnego, które pomija odwołania liczbowe lub astralne

Ręcznie napisane wyrażenie regularne dla encji nazwanych po cichu pomija <, > i emoji jak 😀, pozostawiając je w wyniku. Użyj parsera przeglądarki lub przetestowanej biblioteki obejmującej wszystkie formy odwołań.

✗ Niepoprawne
regex for &name; only  →  &#x1F600; left undecoded
✓ Poprawne
full decoder  →  &#x1F600; becomes 😀

Wynik wyświetlany jako mojibake po dekodowaniu

Dekodowanie é daje prawdziwe é, ale jeśli odbierająca strona lub plik nie jest serwowany jako UTF-8, znak psuje się w bełkot. Ustaw zestaw znaków na UTF-8, zanim zapiszesz zdekodowany tekst.

✗ Niepoprawne
decoded é into a Latin-1 file  →  é mojibake
✓ Poprawne
decoded é into a UTF-8 file  →  é

Założono ścisłe parsowanie i pominięto starsze encje

Ścisły parser XML ignoruje encje bez średnika jak &copy, pozostawiając je dosłownymi. Przeglądarki je rozwijają, więc wierny dekoder również musi — inaczej Twój wynik nie zgadza się z tym, co widzą użytkownicy.

✗ Niepoprawne
strict parse of "&copy 2026"  →  &copy 2026 literal
✓ Poprawne
lenient parse of "&copy 2026"  →  © 2026

Kto korzysta z tego narzędzia

Odczyt składni przechowywanej w postaci po escape
Wyciągnąłeś fragment HTML z bazy danych, logu lub pola JSON, gdzie został zapisany jako <div>…? Zdekoduj go, by zobaczyć i edytować prawdziwą składnię, zamiast mrużyć oczy nad ścianą encji.
Debugowanie tekstu podwójnie zakodowanego
Widzisz &lt; na żywej stronie tam, gdzie powinno być <? Wklej to tutaj, by potwierdzić, że jest podwójnie zakodowane, zdekoduj dwa razy, by odzyskać oryginał, i prześledź zduplikowany escape do jego źródła w potoku.
Wyciąganie zwykłego tekstu z fragmentów HTML
Potrzebujesz czytelnego dla człowieka tekstu z poddanego escape treści e-maila lub pola CMS? Zdekoduj encje, by odzyskać rzeczywiste znaki, zanim zaindeksujesz, przeszukasz lub wyświetlisz treść gdzie indziej.
Odzyskiwanie znaków z danych zeskrapowanych lub wyeksportowanych
Eksporty i scrapery często dostarczają treść z nienaruszonymi encjami. Zdekoduj &, é i podobne z powrotem na ich znaki, aby dane były czyste, zanim trafią do Twoich systemów.
Weryfikacja, że wynik kodera przechodzi obieg
Po poddaniu ciągu escape koderem zdekoduj go tutaj, aby potwierdzić, że otrzymujesz oryginał z powrotem bez zmian. Czysty obieg dowodzi, że Twój escape jest poprawny i odwracalny.
Rozwiązanie zagadkowej encji
Utknąłeś na tym, czym właściwie jest ™ czy …? Wklej to i odczytaj zdekodowany znak lub zajrzyj do wbudowanej tabeli szybkiego przeglądu — nie trzeba zapamiętywać tabel encji.
Bezpieczne dekodowanie starszej składni
Pracujesz ze starym HTML, który niespójnie używa encji bez średnika jak &copy czy &nbsp? Tolerancyjny dekoder odzyskuje zamierzone znaki tak, jak zrobiłaby prawdziwa przeglądarka, więc Twoje czyszczenie odpowiada temu, co użytkownicy faktycznie widzą.

Jak działa dekoder

Rozwija wszystkie trzy formy odwołań
Dekoder dopasowuje odwołania nazwane do pełnej tabeli znaków nazwanych HTML5, parsuje odwołania dziesiętne (&#NNN;) jako punkty kodowe o podstawie 10 i parsuje odwołania szesnastkowe (&#xHHH;) jako punkty kodowe o podstawie 16. Każde rozwija się do swojego znaku Unicode; trzy formy są wymienne na wejściu.
Odtwarzanie płaszczyzn astralnych
Odwołania liczbowe, których punkt kodowy przekracza U+FFFF — większość emoji i wiele symboli — są przekształcane na poprawną parę zastępczą, aby znak renderował się jako pojedynczy glif. 😀 staje się 😀, a nie dwoma uszkodzonymi pół-znakami.
Tolerancyjna obsługa starszych encji
Zdefiniowany podzbiór encji nazwanych historycznie pojawiał się bez kończącego średnika, a przeglądarki nadal je rozwijają. Dekoder odzwierciedla to zachowanie — &copy 2026 daje © 2026 — odpowiadając renderowaniu prawdziwej przeglądarki, a nie ścisłego parsera XML.
Idempotentny na zwykłym tekście
Znaki, które nie są częścią rozpoznanego odwołania, w tym surowy tekst spoza ASCII już obecny na wejściu, przechodzą nietknięte. Dekodowanie ciągu bez encji zwraca go bez zmian, więc operacja jest bezpieczna do uruchomienia na treści mieszanej.
Zdekodowany wynik jest niepoddany escape
Dekodowanie jest odwrotnością escape chroniącego przed XSS, więc wynik jest ponownie aktywną składnią. Narzędzie to sygnalizuje, abyś nie wstawiał zdekodowanego niezaufanego tekstu na stronę przez innerHTML — ponownie poddaj go escape w jego kontekście docelowym przed renderowaniem.
Lokalnie w przeglądarce, zero sieci
Dekodowanie działa synchronicznie w JavaScripcie w głównym wątku; nie ma wywołania API, nie ma obiegu do serwera ani przechowywania. Dane wejściowe nigdy nie opuszczają strony, co możesz potwierdzić, obserwując pusty panel Sieć podczas pisania.

Dobre praktyki unescape HTML

Nigdy nie renderuj zdekodowanego niezaufanego tekstu bezpośrednio
Zdekodowany wynik to niepoddana escape składnia. Jeśli cokolwiek z niego pochodziło od użytkownika lub ze źródła zewnętrznego, ponownie poddaj go escape przed wstawieniem na stronę lub przypisz przez textContent, a nie innerHTML. Pominięcie tego ponownie otwiera lukę cross-site scripting, którą escape miał zamknąć.
Dekoduj w odwrotnej kolejności kodowania
Wartość może być zakodowana HTML, potem URL, potem Base64. Cofaj warstwy w odwrotnej kolejności niż zostały zastosowane — i używaj pasującego narzędzia do każdej: tego do encji, dekodera URL do kodowania procentowego, narzędzia Base64 do base64.
Dekoduj raz, nie odruchowo
Jeśli pojedyncze dekodowanie pozostawia widoczne encje jak <, dane wejściowe były podwójnie zakodowane — zdekoduj ponownie, by odzyskać oryginał, a potem napraw potok wyżej, aby tekst był poddawany escape dokładnie raz. Nie zapętlaj na ślepo; zrozum, dlaczego istnieje dodatkowa warstwa.
Serwuj wynik jako UTF-8
Dekodowanie odwołań liczbowych tworzy prawdziwe znaki Unicode — akcenty, symbole, emoji. Upewnij się, że strona, plik lub pole odbierające zdekodowany tekst jest w UTF-8, inaczej te odzyskane znaki wyświetlą się jako mojibake.
W kodzie aplikacji preferuj przetestowaną bibliotekę
Do pojedynczych konwersji to narzędzie jest idealne; w produkcji dekoduj przy użyciu dobrze przetestowanej biblioteki (he w Node, własny parser przeglądarki przez odłączony textarea) zamiast ręcznie pisanego wyrażenia regularnego, które rutynowo pomija odwołania liczbowe, znaki astralne i starsze encje.

Najczęściej zadawane pytania

Czy mój tekst jest wysyłany na wasz serwer podczas dekodowania?
Nie. Każda encja jest rozwijana w całości w Twojej przeglądarce za pomocą JavaScriptu — otwórz Narzędzia deweloperskie → Sieć, a zobaczysz zero żądań, gdy piszesz lub wklejasz. Nic nie jest wysyłane, rejestrowane ani zapisywane na dysku. Ta prywatność ma znaczenie, bo ciągi po escape, które ludzie dekodują, są często wrażliwe: fragment wyciągnięty z prywatnej bazy danych, wewnętrzny e-mail, rekord klienta lub składnia skopiowana z aplikacji, z której nie chcesz, by coś wyciekło. W dekoderze działającym po stronie serwera każda z tych rzeczy wędrowałaby przez sieć do maszyny, której nie kontrolujesz; tutaj tekst nigdy nie opuszcza karty. To cały powód, dla którego warto dekodować HTML po stronie klienta, zamiast wklejać go na stronę, która w zasadzie mogłaby przechowywać kopię wszystkiego, co przetwarza.
Co to znaczy dekodować lub unescape HTML?
Dekodowanie HTML — zwane też unescape — to odwrotność escape HTML: bierze odwołania znakowe jak <, &, < czy © i zamienia każde z powrotem na prawdziwy znak, który reprezentuje (<, &, <, ©). Sięgasz po nie zawsze, gdy masz ciąg zapisany lub przesłany w postaci po escape i potrzebujesz z powrotem dosłownego tekstu — by go odczytać, edytować, podać innemu programowi lub zdebugować, dlaczego strona pokazuje &lt; na ekranie zamiast <. Jeśli chcesz iść w drugą stronę i zamienić znaki na encje, użyj towarzyszącego kodera encji HTML; oba są dokładnie odwrotne.
Jakie rodzaje encji potrafi obsłużyć ten dekoder?
Wszystkie trzy formy, w dowolnej kombinacji. Rozwija odwołania nazwane (<, &, ©, — i pełny zestaw encji nazwanych HTML5), dziesiętne odwołania liczbowe (<, é) oraz szesnastkowe odwołania liczbowe (<, é). Odtwarza też znaki z płaszczyzn astralnych powyżej U+FFFF z ich odwołań liczbowych, więc emoji takie jak 😀 dekoduje się poprawnie do 😀. Stosuje także tolerancyjne parsowanie przeglądarki dla garstki starszych encji nazwanych, które pomijają kończący średnik — &copy 2026 wciąż dekoduje się do © 2026 — które ścisłe parsery pominęłyby. Krótko mówiąc, cokolwiek wygenerował koder, ten dekoder to odwraca.
Dlaczego mój tekst pokazuje &lt; zamiast
To klasyczny objaw podwójnego kodowania. Gdzieś w Twoim potoku tekst został poddany escape dwa razy: pierwsze przejście zamieniło < w <, a drugie zamieniło & w < na &, dając &lt;. Gdy przeglądarka zdekoduje to raz, pokazuje < jako dosłowny tekst, a nie <. Aby odzyskać oryginał, zdekoduj go dwa razy — wklej tutaj ciąg, by otrzymać <, a potem wklej ten wynik z powrotem, by otrzymać <. Prawdziwa naprawa jest wyżej: poddawaj escape dokładnie raz, w momencie wyjścia, aby tekst nigdy nie został podwójnie zakodowany.
Czy zdekodowany wynik będzie bezpieczny do umieszczenia z powrotem na stronie?
Tu trzeba uważać. Dekodowanie jest przeciwieństwem escape, więc zdekodowany tekst jest z definicji niepoddany escape — jeśli zawiera znacznik <script> lub procedurę obsługi onerror, ta składnia jest teraz znów aktywna. Nigdy nie bierz niezaufanych danych, nie dekoduj ich i nie wstawiaj wyniku na stronę przez innerHTML, bo ponownie otwierasz dokładnie tę lukę cross-site scripting (XSS), którą escape miał zamknąć. Dekodowanie to właściwy ruch, gdy potrzebujesz surowych znaków do odczytu, edycji lub przechowania; ale wszystko, co renderujesz z powrotem do HTML, musi przejść ponowny escape w swoim kontekście docelowym. Jeśli zamierzasz wyświetlić zdekodowany wynik, najpierw przepuść go ponownie przez koder encji HTML.
Czy dekodowanie poprawnie obsługuje znaki spoza ASCII i emoji?
Tak. Odwołania liczbowe mogą zakodować dowolny punkt kodowy Unicode, a dekoder rozwija je wszystkie — litery z akcentami (é → é), symbole (€ → €), pauzy (— → —) i emoji z pełnej płaszczyzny (😀 → 😀). Dla znaków astralnych powyżej U+FFFF odtwarza pełny punkt kodowy, a nie tworzy uszkodzonego pół-znaku. Surowe znaki spoza ASCII już obecne w danych wejściowych przechodzą nietknięte, więc ciąg mieszający prawdziwy UTF-8 z encjami dekoduje się czysto, nie uszkadzając żadnej z części. Upewnij się, że strona lub plik, do którego wklejasz wynik, jest serwowany jako UTF-8, aby odzyskane znaki wyświetliły się poprawnie.
Jak zakodować tekst z powrotem na encje?
Użyj towarzyszącego kodera encji HTML. Przyjmuje surowe znaki jak <div> & © i poddaje je escape do <div> & ©, z opcjami wyniku nazwanego, dziesiętnego lub szesnastkowego oraz trybem „koduj wszystko spoza ASCII” dla starszych zestawów znaków. Kodowanie i dekodowanie są dokładnie odwrotne dla znaków zarezerwowanych, więc możesz przepuścić tekst przez oba narzędzia bez strat. Możesz przejść tam od razu przyciskiem Zamień kierunek na tej stronie.
Czy to to samo co dekodowanie URL lub Base64?
Nie — to trzy różne kodowania do trzech różnych zadań, a ich mylenie to częste źródło błędów. Dekodowanie encji HTML zamienia < z powrotem na <. Dekodowanie URL (procentowe) zamienia %20 z powrotem na spację i służy do ciągów zapytań oraz ścieżek — użyj do tego kodera / dekodera URL. Dekodowanie Base64 zamienia ciąg base64 z powrotem na oryginalne bajty i służy do bezpiecznego binarnie transportu — użyj Base64 koder / dekoder. Wartość może być owinięta więcej niż jednym z nich, więc dekoduj je w odwrotnej kolejności niż zostały zastosowane. To narzędzie obsługuje wyłącznie encje HTML.

Powiązane narzędzia

Zobacz wszystkie narzędzia →