web-dev-qa-db-ja.com

いつHTMLエンティティを使用する必要がありますか?

これはしばらくの間私を混乱させてきました。 Web開発の事実上の標準としてのUTF-8の出現により、どの状況でHTMLエンティティを使用することになっているか、またどのエンティティにUTF-8文字を使用するだけなのかわかりません。例えば、

  • emダッシュ(–、&emdash;
  • アンパサンド(&、&
  • 3/4分数(¾、¾

この問題に光を当ててください。ありがたいです。

110
allesklar

通常、エディターがUnicodeをサポートしている場合、HTML文字エンティティを使用する必要はありません。エンティティは次の場合に役立ちます。

  • キーボードは、入力する必要のある文字をサポートしていません。たとえば、多くのキーボードにはem-dashや著作権記号がありません。
  • エディターはUnicodeをサポートしていません(数年前に非常に一般的でしたが、おそらく今日はそうではありません)。
  • 何が起きているのかをソースで明示したい場合。たとえば、 コードは、対応する空白文字よりも明確です。
  • <&、または"などのHTML特殊文字をエスケープする必要があります。
75
JacquesB

視覚的に混乱しやすい文字にはUTF-8を使用しません。たとえば、ダッシュとマイナス、または特にスペースと改行なしスペースを区別することは困難です。これらのキャラクターには、必ずエンティティを使用してください。

視覚的に簡単に理解できる文字(上記の中国語の例など)については、必要に応じてUTF-8を使用してください。

5
Ned Batchelder

HTMLエンティティは、(複数の)異なるエンコーディングで(動的に)ページに含まれるコンテンツを生成する場合に役立ちます。たとえば、ISO-8859-1およびUTF-8でエンコードされたWebページの両方に含まれるホワイトラベルコンテンツがあります...

UTF-8から/への文字セット変換がそれほど大きな信頼性の低い混乱ではない場合(一部の文字や適切に変換しないツールにつまずく)、UTF-8で標準化することが道です。

4
mjy

ページがutf-8で正しくエンコードされている場合、htmlエンティティは必要ないはずです。必要な文字を直接使用してください。

2
Otávio Décio