これはしばらくの間私を混乱させてきました。UTF-8 が Web 開発の事実上の標準として登場したことで、HTML エンティティを使用する必要がある状況と、UTF-8 文字だけを使用する必要がある状況がわかりません。例えば、
- 全角ダッシュ (–,
&emdash;
) - アンパサンド (&,
&
) - 3/4 分数 (¾,
¾
)
この問題に光を当ててください。それは高く評価されます。
これはしばらくの間私を混乱させてきました。UTF-8 が Web 開発の事実上の標準として登場したことで、HTML エンティティを使用する必要がある状況と、UTF-8 文字だけを使用する必要がある状況がわかりません。例えば、
&emdash;
)&
)¾
)この問題に光を当ててください。それは高く評価されます。
エディターが Unicode をサポートしている場合、通常は HTML 文字エンティティを使用する必要はありません。エンティティは次の場合に役立ちます。
コードは対応する空白文字よりも明確です。<
、、&
またはなどの HTML 特殊文字をエスケープする必要があります"
。視覚的に混乱しやすい文字には UTF-8 を使用しません。たとえば、emdash とマイナスを区別することは困難であり、特に非改行スペースとスペースを区別することは困難です。これらのキャラクターには、必ずエンティティを使用してください。
視覚的に簡単に理解できる文字 (上記の中国語の例など) については、必要に応じて UTF-8 を使用してください。
エンティティは、エンコーディングを正しく理解していない脳死状態のクライアントとの互換性を購入する場合があります。現在のブラウザが含まれているとは思いませんが、他の種類のプログラムがあなたを襲っているのかはわかりません.
しかし、もっと便利なのは、HTML エンティティが自分自身のエラーからあなたを守ることです: サーバー上で何かを誤って設定し、それが であることを示す HTTP ヘッダーとそれがであることISO-8859-1
を示すMETA
タグを含むページを提供することになったUTF-8
場合、少なくとも —es常に機能します。
個人的には、ずっと前からすべてを utf-8 で行っていますが、html ページでは、常にアンパサンド (&)、より大きい (>) およびより小さい (<) 文字を同等のエンティティ & に変換する必要があります。 > <
また、utf-8 テキストを使用してプログラミングを行う場合は、注意すべき点がいくつかあります。
HTML エンティティは、(複数の) 異なるエンコーディングを使用してページに (動的に) 含まれるコンテンツを生成する場合に役立ちます。たとえば、ISO-8859-1 と UTF-8 でエンコードされた Web ページの両方に含まれるホワイト ラベル コンテンツがあります...
UTF-8 から/への文字セット変換がそれほど信頼性の低い混乱ではなかった場合 (適切に変換されない文字やツールに常に遭遇します)、UTF-8 で標準化する方法があります。
以前の回答はすべて私にとって理にかなっています。
さらに、主に使用するエディターとドキュメント言語に依存します。エディターの最小要件は、ドキュメント言語をサポートすることです。つまり、テキストが日本語の場合、それらを表示しない (つまり、ドキュメント自体にエンティティがない) エディターを使用しないように注意してください。英語の場合は、古い vim のようなエディターを使用して、相対的な © のみにエンティティを使用することもできます。と友達。もちろん: > for > およびその他の HTML スペシャルには、依然としてエスケープが必要です。しかし、他のラテン 1 言語 (ドイツ語、フランス語など) でも ä を書くのは面倒です。
In addition, I personally write entities for invisible characters and those which are looking similar to standard-ascii and are therefore easily confused. For example, there is u1173 (looking like a dash in some charsets) or u1175, which looks like the vertical bar. I'd use entities for those in any case.
If your pages are correctly encoded in utf-8 you should have no need for html entities, just use the characters you want directly.