HTML Entity кодер и декодер

Екранирайте текст, за да е безопасно да го поставите в HTML, или превърнете entities като & и € обратно в четими символи.

Работи в браузъраБез регистрацияНищо не се качва

Кодирано

Как да използвате: HTML Entity кодер / декодер

  1. Изберете Кодиране, за да екранирате текст, или Декодиране, за да превърнете entities обратно в символи.
  2. При кодиране изберете кои символи да се екранират: само специалните за HTML, също всички не-ASCII символи или всичко освен букви и цифри.
  3. Изберете именувани entities (é), десетични (é) или шестнайсетични (é).
  4. Копирайте резултата. При декодиране непознатите entities се изброяват, за да забележите печатни грешки.

Защо да екранирате HTML?

Пет символа имат специално значение в HTML: & започва entity, < и > ограждат таговете, а " и ' затварят стойностите на атрибутите. Ако въведен от потребител текст, съдържащ ги, бъде вмъкнат в страница без екраниране, той може да развали оформлението или, по-лошо, да инжектира скриптове (cross-site scripting, XSS). Екранирането ги превръща в &amp;, &lt;, &gt;, &quot; и &#x27;, които браузърът показва като текст.

Именувани, десетични и hex entities

Всеки Unicode символ може да се запише като числова препратка: десетична &#8364; или шестнайсетична &#x20AC; за €. Много често срещани символи имат и четимо име, като &euro;, &copy; или &nbsp;. Числовите препратки работят навсякъде, включително в XML, който дефинира само пет именувани entities. Именуваните entities са по-лесни за четене в изходния код.

Трябва ли да кодирам не-ASCII символи?

Не, ако страницата ви се сервира като UTF-8, както почти всеки модерен сайт (<meta charset="utf-8">). Символи като é, ü или 日本 могат да се пишат директно. Кодирането им е полезно за стари системи, имейл шаблони или когато някой етап от обработката поврежда не-ASCII текст.

Екранирането зависи от контекста

Екранирането с HTML entities защитава текст в съдържанието на елементи и в атрибути с кавички. То не е достатъчно за стойности в блокове <script>, вградени обработчици на събития, CSS или URL адреси — всеки от тях изисква собствено кодиране. Предпочитайте автоматичното екраниране на вашия фреймуърк (React, Vue, Jinja, Blade) пред ръчното сглобяване на низове.

Често задавани въпроси

Кои символи задължително трябва да се екранират в HTML?
В текстовото съдържание задължителни са & и <. В стойностите на атрибути екранирайте и използваната кавичка. Екранирането и на петте (& < > " ') е безопасният избор по подразбиране.
Какво е &amp;nbsp;?
Непрекъсваем интервал (U+00A0). Изглежда като интервал, но не позволява пренос на нов ред и не се слива със съседните интервали.
Защо &amp;copy2024 се декодира като ©2024?
За обратна съвместимост браузърите декодират няколко стари entities, като &copy, &amp и &lt, дори без крайната точка и запетая. Този декодер следва същото правило. Винаги пишете точката и запетаята в собствения си HTML.
Апострофът &amp;apos; ли е или &amp;#39;?
&apos; е валиден в HTML5 и XML, но не и в HTML 4, затова числовото &#39; или &#x27; е най-съвместимият избор и това генерира този кодер.

Свързани инструменти