Od jakiegoś czasu mnie to wprawia w zakłopotanie. Wraz z pojawieniem się UTF-8 jako de facto standardu w tworzeniu stron internetowych nie jestem pewien, w jakich sytuacjach mam używać encji HTML, a do których powinienem używać po prostu znaku UTF-8. Na przykład,
- myślnik (-,
&emdash;
) - ampersand (&,
&
) - 3/4 frakcji (¾,
¾
)
Prosimy o wyjaśnienie tej kwestii. To będzie docenione.
html
xhtml
html-entities
allesklar
źródło
źródło
Odpowiedzi:
Zwykle nie musisz używać encji znakowych HTML, jeśli twój edytor obsługuje Unicode. Podmioty mogą być przydatne, gdy:
kod jest wyraźniejszy niż odpowiadający mu znak odstępu.<
,&
lub"
.źródło
zamiast rzeczywistych białych znaków, częściowo dlatego, że Firefox konwertuje U + 00A0 na U + 0020 w formularzach. Zatem użycie encji w tym przypadku jest jedynym sposobem na zapewnienie, że źródło nie zostanie zepsute za każdym razem, gdy użytkownik Firefoksa je edytuje.<
często wymaga ucieczki, nigdy>
(i"
rzadko wymaga ucieczki wewnątrz wartości atrybutów).&
powinno być zawsze używane zamiast&
? Czy jest tego powód?Na podstawie otrzymanych komentarzy przyjrzałem się temu nieco dokładniej. Wygląda na to, że obecnie najlepszą praktyką jest rezygnacja z używania encji HTML i użycie zamiast tego rzeczywistego znaku UTF-8 . Wymienione powody są następujące:
Jeśli kodowanie Twojej strony jest poprawnie ustawione na UTF-8, powinieneś używać rzeczywistego znaku zamiast encji HTML. Przeczytałem kilka dokumentów na ten temat, ale najbardziej pomocne były:
Z artykułu UTF-8: The Secret of Character Encoding :
Ten artykuł zawiera również dobry przykład dotyczący kodowania w języku chińskim. Oto przykład skrócony ze względu na lenistwo:
UTF-8:
這兩個字是甚麼意思
Jednostki HTML :
這兩個字是甚麼意思
Kodowanie encji UTF-8 i HTML jest dla mnie bez znaczenia, ale przynajmniej kodowanie UTF-8 jest rozpoznawalne jako język obcy i będzie poprawnie renderowane w polu edycji. Artykuł mówi dalej o wersji zakodowanej w formacie HTML:
Jak zauważyli inni, nadal musisz używać encji HTML dla zarezerwowanych znaków XML (ampersand, mniej niż, większe niż).
źródło
&entity;
składni w dokumencie HTML z zadeklarowanym zestawem znaków UTF-8, prawda? Chociaż zwykłe znaki UTF-8 są lepsze z powodów, które wymieniłeś, nie ma problemu z posiadaniem niektórych jednostek HTML obok nich w tym samym dokumencie?Nie użyłbym UTF-8 do znaków, które można łatwo pomylić wizualnie. Na przykład, trudno jest odróżnić emdash od minusa, a zwłaszcza nierozdzielającą spację od spacji. W przypadku tych postaci zdecydowanie używaj bytów.
W przypadku znaków, które są łatwo zrozumiałe wizualnie (takie jak powyższe chińskie przykłady), użyj UTF-8, jeśli chcesz.
źródło
Osobiście robię wszystko w utf-8 od dłuższego czasu, jednak na stronie html zawsze musisz konwertować znaki ampersand (&), większe niż (>) i mniejsze niż (<) na ich odpowiedniki, & amp ;, & gt; i & lt;
Ponadto, jeśli zamierzasz programować przy użyciu tekstu utf-8, jest kilka rzeczy, na które należy zwrócić uwagę.
źródło
Podmioty mogą kupić ci pewną zgodność z martwymi klientami, którzy nie rozumieją poprawnie kodowania. Nie sądzę, aby obejmowało to jakiekolwiek obecne przeglądarki, ale nigdy nie wiadomo, jakie inne rodzaje programów mogą Cię uderzać.
Bardziej przydatne jest jednak to, że encje HTML chronią cię przed własnymi błędami: jeśli źle skonfigurujesz coś na serwerze i skończysz na wyświetlaniu strony z nagłówkiem HTTP, który mówi, że to,
ISO-8859-1
iMETA
tagiem, który mówi, że toUTF-8
, przynajmniej twoje & mdash; es zawsze będzie działać.źródło
&mdash
wyświetlane poprawnie, nawet jeśli nagłówki są źle skonfigurowane, utrudnia wykrycie problemu.Encje HTML są przydatne, gdy chcesz generować treść, która ma być umieszczana (dynamicznie) na stronach z (kilkoma) różnymi kodowaniami. Na przykład mamy treść z białymi etykietami, która jest zawarta zarówno na stronach internetowych zakodowanych w ISO-8859-1, jak i UTF-8 ...
Jeśli konwersja zestawu znaków z / do UTF-8 nie była tak dużym, zawodnym bałaganem (zawsze natkniesz się na niektóre postacie i niektóre narzędzia, które nie konwertują poprawnie), standaryzacja na UTF-8 byłaby właściwą drogą.
źródło
Jeśli Twoje strony są poprawnie zakodowane w utf-8, nie powinieneś potrzebować jednostek html, po prostu użyj bezpośrednio żądanych znaków.
źródło
Wszystkie poprzednie odpowiedzi mają dla mnie sens.
Ponadto: Zależy to głównie od edytora, którego zamierzasz używać, i języka dokumentu. Minimalnym wymaganiem dla redaktora jest obsługa języka dokumentu. Oznacza to, że jeśli twój tekst jest w języku japońskim, uważaj na używanie edytora, który ich nie wyświetla (tj. Nie ma elementów w samym dokumencie). Jeśli jest to angielski, możesz nawet użyć starego edytora podobnego do vim i używać encji tylko dla względnych rzadko & copy; i przyjaciele. Oczywiście: & gt; dla> i innych specjalnych HTML nadal potrzebuje znaków specjalnych. Ale nawet w przypadku innych języków łacińskich-1 (niemiecki, francuski itp.) Pisanie jest uciążliwe, bo wiesz, gdzie ...
Ponadto osobiście piszę encje dla niewidzialnych postaci i takich, które wyglądają podobnie do standardowego ascii i dlatego łatwo je pomylić. Na przykład istnieje u1173 (wyglądający jak myślnik w niektórych zestawach znaków) lub u1175, który wygląda jak pionowy pasek. W każdym razie użyłbym bytów do tych.
źródło