128

これはしばらくの間私を混乱させてきました。UTF-8 が Web 開発の事実上の標準として登場したことで、HTML エンティティを使用する必要がある状況と、UTF-8 文字だけを使用する必要がある状況がわかりません。例えば、

  • 全角ダッシュ (–, &emdash;)
  • アンパサンド (&, &)
  • 3/4 分数 (¾, ¾)

この問題に光を当ててください。それは高く評価されます。

4

8 に答える 8

123
于 2009-01-12T19:19:28.623 に答える
87

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

  • お使いのキーボードは、入力する必要のある文字をサポートしていません。たとえば、多くのキーボードには em ダッシュや著作権記号がありません。
  • お使いのエディタは Unicode をサポートしていません (数年前には非常に一般的でしたが、現在はおそらくサポートされていません)。
  • 何が起こっているのかをソースで明示したいと考えています。たとえば、 コードは対応する空白文字よりも明確です。
  • <、、&またはなどの HTML 特殊文字をエスケープする必要があります"
于 2009-01-12T19:47:43.933 に答える
5

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

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

于 2009-01-12T20:12:13.493 に答える
5

エンティティは、エンコーディングを正しく理解していない脳死状態のクライアントとの互換性を購入する場合があります。現在のブラウザが含まれているとは思いませんが、他の種類のプログラムがあなたを襲っているのかはわかりません.

しかし、もっと便利なのは、HTML エンティティが自分自身のエラーからあなたを守ることです: サーバー上で何かを誤って設定し、それが であることを示す HTTP ヘッダーとそれがであることISO-8859-1を示すMETAタグを含むページを提供することになったUTF-8場合、少なくとも —es常に機能します。

于 2009-01-12T19:24:25.587 に答える
5

個人的には、ずっと前からすべてを utf-8 で行っていますが、html ページでは、常にアンパサンド (&)、より大きい (>) およびより小さい (<) 文字を同等のエンティティ & に変換する必要があります。 > <

また、utf-8 テキストを使用してプログラミングを行う場合は、注意すべき点がいくつかあります。

  • XML では、エンティティを使用するときに検証するために追加の行が必要です。
  • 一部のライブラリは、utf-8 とうまく連携しません。たとえば、一部の Linux ディストリビューションの PHP では、正規表現ライブラリで utf-8 の完全サポートが廃止されました。
  • 1 つのエンティティが多くの文字を使用するため、html エンティティを使用するテキストの文字数を制限するのは困難です。また、エンティティを半分に切断するリスクが常にあります。
于 2009-02-01T17:41:39.843 に答える
4

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

UTF-8 から/への文字セット変換がそれほど信頼性の低い混乱ではなかった場合 (適切に変換されない文字やツールに常に遭遇します)、UTF-8 で標準化する方法があります。

于 2009-01-12T20:23:52.533 に答える
2

以前の回答はすべて私にとって理にかなっています。

さらに、主に使用するエディターとドキュメント言語に依存します。エディターの最小要件は、ドキュメント言語をサポートすることです。つまり、テキストが日本語の場合、それらを表示しない (つまり、ドキュメント自体にエンティティがない) エディターを使用しないように注意してください。英語の場合は、古い 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.

于 2009-01-12T20:17:42.623 に答える
2

If your pages are correctly encoded in utf-8 you should have no need for html entities, just use the characters you want directly.

于 2009-01-12T19:19:57.593 に答える