Koder encji HTML
Zamień tekst na encje HTML, żeby znaki znaczników przetrwały, w swojej przeglądarce.
Działa w całości w twojej przeglądarce. Nic nie jest wysyłane, logowane ani przechowywane.
Pięć znaków nie może pojawić się w HTML-u dosłownie bez zmiany znaczenia znaczników: ampersand, dwa nawiasy ostre i dwa rodzaje cudzysłowu. Ich zakodowanie sprawia, że fragment tekstu staje się fragmentem tekstu, który przeglądarka wyświetli, zamiast go wykonać.
Jak to działa
Tryb minimalny koduje tylko te pięć znaków. To niemal zawsze właściwy wybór: jeśli twoja strona i twoje pliki są w UTF-8, litera ze znakiem diakrytycznym nie wymaga kodowania, a jej zakodowanie utrudnia czytanie kodu źródłowego bez żadnego zysku.
Encje nazwane zastępują wszystkie znaki, którym HTML 4.01 nadaje nazwy — łącznie 252, é jako é, © jako ©. Używaj ich, gdy wynik musi przejść przez coś, co psuje wszystko powyżej ASCII, na przykład stary system pocztowy albo kolumnę bazy danych z niewłaściwym porównywaniem (collation).
Odwołania numeryczne dają tę samą gwarancję według punktu kodowego zamiast nazwy, więc działają z każdym znakiem, a nie tylko z 252 nazwanymi. Są zapisywane szesnastkowo z zamykającym średnikiem, który akceptuje każdy parser.
Przykłady
| Przypadek | Dane wejściowe | Wynik |
|---|---|---|
| Znacznik do wyświetlenia, nie do wykonania | <script>alert(1)</script> | <script>alert(1)</script> |
| Ampersand wewnątrz wartości | Tom & Jerry | Tom & Jerry |
| Litera z akcentem jako encja nazwana | café | café |
Najczęściej zadawane pytania
Czy zakodowanie tutaj wystarczy, żeby dane wprowadzone przez użytkownika były bezpieczne?
Dla tekstu między znacznikami i dla wartości atrybutu w cudzysłowie — tak: cudzysłowy też są kodowane. Gdzie indziej — nie: wartość trafiająca do adresu URL, bloku stylów lub bloku skryptu wymaga własnego kodowania, a encje HTML są do wszystkich trzech niewłaściwym narzędziem. Koduj w miejscu wyjścia, w kontekście tego wyjścia, w swoim kodzie, a nie przez wklejanie tekstu na stronę internetową.
Dlaczego apostrof jest kodowany jako ', a nie '?
' nie ma w HTML 4.01. Dodano go w XHTML, a później w HTML5, a stare przeglądarki wyświetlają go dosłownie. Forma numeryczna zawsze działała wszędzie.
Jakie encje nazwane są obsługiwane?
252 encje z HTML 4.01. HTML5 definiuje około dwóch tysięcy kolejnych, głównie matematycznych, i nie są one tu uwzględnione. Wszystko, co nie ma nazwy w tym zestawie, zostaje bez zmian w trybie nazwanym albo jest kodowane według punktu kodowego w trybie numerycznym.
Czy na nowoczesnej stronie trzeba kodować znaki diakrytyczne?
Nie. Jeśli strona deklaruje UTF-8, a plik jest zapisany w UTF-8, é to po prostu é. Encje nazwane służą do przepuszczania tekstu przez systemy, które nie radzą sobie czysto z UTF-8.
Warto wiedzieć
- Wszystko dzieje się w przeglądarce. To, co wklejasz, nie jest wysyłane, rejestrowane ani przechowywane.
Źródła
Wszystkie narzędzia z kategorii Kod