Po co używać encji HTML zamiast po prostu umieszczać znaki Unicode w HTML?


12

Powiedzmy, że chcę wstawić nieprzezroczysty znak w pliku HTML; na przykład „→”. Czy jest jakiś powód, dla którego powinienem wpisać go jako „& rarr;” zamiast po prostu wstawić „→” w pliku HTML? Załóżmy, że mój plik HTML jest kodowany i przesyłany w jakimś formacie Unicode.

Odpowiedzi:


10

Te dwa końcowe stwierdzenia są dużymi założeniami.

Na przykład mamy aplikację internetową, która używa AJAX w dosłownym znaczeniu - używamy go do ładowania dokumentów XML w locie. Jeśli dokument XML nie ma poprawnego content-encodingnagłówka (lub w ogóle go nie ma), wówczas dowolne znaki Unicode (smartquotes, długie myślniki, nawet niektóre specjalne białe znaki i słowo Café) powodują, że Internet Explorer upada za każdym razem. Żądanie AJAX po prostu kończy się niepowodzeniem i odpala błąd javascript.

Jeśli jednak dokonamy zamiany po stronie serwera wszystkich znaków Unicode na ich encje HTML, wszystko działa dobrze.

Oczywiście, jeśli plik ma prawidłowe nagłówki zawartości, nie powinno to stanowić problemu dla żadnej współczesnej przeglądarki.


0

Jeśli jednak dokonamy zamiany po stronie serwera wszystkich znaków Unicode na ich encje HTML, wszystko działa dobrze.

Zakłada się, że wszystkie znaki można zastąpić elementami HTML, których nie mogą. Użyj poprawnych nagłówków i wcześnie wykryj te problemy (używając niewłaściwego nagłówka), zamiast się mylić, gdy wystąpią później.


7
W rzeczywistości każdy znak Unicode ma odpowiedni byt HTML.
Mark Henderson

O mój Boże, myślałem o nazwanych bytach. :)

0

Aby dodać do doskonale przyjętej odpowiedzi: ogólnie pliki ASCII są znacznie bardziej przenośne w różnych edytorach.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.