Чому текст показує «&» і як це виправити
Опубліковано · Оновлено 2 хв читання
Коли текст показує «&» замість «&», HTML-сутність було закодовано зайвий раз. Інструмент декодує по одному рівню й повідомляє, коли залишається ще один.
Що таке HTML-сутність
Сутність це послідовність знаків, що представляє символ, зарезервований для коду сторінки. П’ять із них поширені.
| Символ | Сутність |
|---|---|
| & | & |
| < | < |
| > | > |
| " | " |
| ' (прямий апостроф) | ' |
Звідки береться подвійне кодування
Текст іноді проходить через дві системи, кожна з яких кодує: редактор, потім шаблон сторінки. Кожен прохід перетворює «&» попередньої сутності. За допомогою Кодувати та декодувати HTML-сутності кодування «Tom & Jerry» дає «Tom & Jerry», а кодування цього результату дає «Tom &amp; Jerry».
| Етап | Отриманий текст |
|---|---|
| Початковий текст | Tom & Jerry |
| Закодовано один раз | Tom & Jerry |
| Закодовано двічі | Tom &amp; Jerry |
Браузер декодує один рівень під час відображення. Текст, закодований двічі, тому відображається з «&» замість «&».
Декодувати по одному рівню
Інструмент прибирає один рівень сутностей за прохід. Якщо в результаті лишаються сутності, режим «Обидва» повідомляє про це, і ви запускаєте декодування знову на результаті.
| Текст | Перше декодування | Друге декодування |
|---|---|---|
| Tom &amp; Jerry | Tom & Jerry | Tom & Jerry |
| &lt;b&gt;gras&lt;/b&gt; | <b>gras</b> | <b>gras</b> |
Декодування одного рівня дає змогу не скасувати навмисне кодування: приклад коду, який має показати на екрані «&», записується на сторінці як «&amp;».
Акценти й символи
Декодування розуміє всі іменовані сутності, що закінчуються крапкою з комою, а не лише п’ять звичайних. «café à 5 € © 2026» дає «café à 5 € © 2026», а нерозривний пробіл стає справжнім нерозривним пробілом.
Числові сутності
Числові сутності теж декодуються: «été» дає «été», а «😀» так само, як «😀», дають те саме емодзі.
Що інструмент залишає недоторканим
- Невідома сутність на кшталт «&inconnue;» лишається як є.
- Сутність без кінцевої крапки з комою, наприклад «&» або «<» у реченні, не зачіпається.
- Адреса з параметрами, наприклад «https://exemple.fr/?a=1¶m=2©=4», лишається точною: «¶m» і «©» там не сприймаються за сутності.
Кодування коду для відображення
Щоб показати фрагмент коду на сторінці, закодуйте його один раз. Текст «<a href="x">l’été & plus</a>» дає «<a href="x">l'été & plus</a>». Літери з акцентами не кодуються, лише п’ять зарезервованих символів.
Як уникнути проблеми
Кодуйте лише один раз, в останній момент, під час запису на сторінку. Для масової заміни залишків невдалого кодування підходить Знайти та замінити. Вебадреси підпорядковуються іншому кодуванню, описаному в посібнику Base64, хеш і закодована адреса, чим вони відрізняються.
Перевірка результату
- Запускайте декодування знову, доки інструмент повідомляє про сутності, що залишилися.
- Порівняйте з початковим текстом на екрані.
- Перевірте нерозривні пробіли та емодзі.
