これはしばらくの間私を混乱させてきました。Web開発のデファクトスタンダードとしてのUTF-8の登場により、どのような状況でHTMLエンティティを使用することになっているか、どのエンティティにUTF-8文字を使用すればよいかわかりません。例えば、
- 全角ダッシュ(–、
&emdash;
) - アンパサンド(&、
&
) - 3/4分数(¾、
¾
)
この問題に光を当ててください。よろしくお願いします。
これはしばらくの間私を混乱させてきました。Web開発のデファクトスタンダードとしてのUTF-8の登場により、どのような状況でHTMLエンティティを使用することになっているか、どのエンティティにUTF-8文字を使用すればよいかわかりません。例えば、
&emdash;
)&
)¾
)この問題に光を当ててください。よろしくお願いします。
回答:
エディターがUnicodeをサポートしている場合は、通常、HTML文字エンティティを使用する必要はありません。エンティティは次の場合に役立ちます。
コードは対応する空白文字よりも明確です。<
、&
または"
。
は、実際の空白文字の代わりに依然義務付けています。これは、FirefoxがフォームでU + 00A0をU + 0020に変換するためです。したがって、その場合にエンティティを使用することが、Firefoxユーザーが編集するたびにソースがめちゃくちゃにならないようにする唯一の方法です。
<
エスケープが必要になることはよくあります>
(そして、"
属性値の内部でまれにしかエスケープする必要がありません)。
&
常に代わりに使用する必要があり&
ますか?これには理由がありますか?
私は受け取ったコメントに基づいて、これについてもう少し詳しく調べました。現在のところ、ベストプラクティスはHTMLエンティティの使用をやめて、代わりに実際のUTF-8文字を使用することです。記載されている理由は次のとおりです。
ページのエンコーディングがUTF-8に正しく設定されている限り、HTMLエンティティではなく実際の文字を使用する必要があります。このトピックに関するいくつかのドキュメントを読みましたが、最も役に立ったのは次のとおりです。
文字エンコーディングの秘密:UTF-8の記事:
ウィキペディアは、もともとISO-8859-1を使用していたが、煩雑になりすぎて外国語をサポートできなくなったときにUTF-8に切り替えられたアプリケーションの優れたケーススタディです。ボットは、使いやすさと検索のしやすさのために、実際に記事を読み、文字エンティティを対応する実際の文字に変換します。
その記事は、中国語のエンコーディングを含む良い例も示しています。以下に、怠惰のための省略例を示します。
UTF-8:
這兩個字是甚麼意思
HTMLエンティティ:
這兩個字是甚麼意思
UTF-8とHTMLエンティティのエンコーディングはどちらも私には意味がありませんが、少なくともUTF-8エンコーディングは外国語として認識でき、編集ボックスで適切にレンダリングされます。この記事では、HTMLエンティティエンコードバージョンについて次のように述べています。
キャラクターエンティティが実際に何であるかを知っている私たちにとっては非常に不便です。知らない貧しいユーザーにはまったく理解できません!&theta;のような、少しだけユーザーフレンドリーで「わかりやすい」キャラクターエンティティですらあります。HTMLの学習に興味がないユーザーが頭を悩ませるでしょう。一方、エディットボックスにθが表示されている場合、彼らは特殊文字であることを知っているので、自分でその文字の書き方を知らなくても、それに応じて扱います。
他の人が指摘したように、予約済みのXML文字(アンパサンド、小なり、大なり)には引き続きHTMLエンティティを使用する必要があります。
&entity;
宣言されたUTF-8文字セットを使用してHTMLドキュメント内で構文を使用することには、危険または無効なことは何もありません、正しい?あなたがリストした理由でプレーンなUTF-8文字の方が良いですが、同じドキュメント内にいくつかのHTMLエンティティが並んでいても問題はありませんか?
個人的に私は長い間utf-8ですべてを行っていますが、htmlページでは、アンパサンド(&)、(>)より大きく(<)よりも小さい文字を、対応するエンティティ&amp;に常に変換する必要があります。 &gt; と&lt;
また、utf-8テキストを使用してプログラミングを行う予定がある場合は、注意する点がいくつかあります。
エンティティは、エンコーディングを正しく理解しない頭の悪いクライアントとの互換性をあなたに買うかもしれません。これには現在のブラウザが含まれているとは思わないが、他の種類のプログラムがどのような問題を引き起こしているのか、あなたにはわからない。
ただし、より便利なのは、HTMLエンティティが自分のエラーから保護することです。サーバーで何かを誤って構成し、それがであることを示すHTTPヘッダーISO-8859-1
と、それがであることを示すMETA
タグが付いたページを提供すると、UTF-8
少なくとも&mdash; es常に動作します。
&mdash
をとることもできます。ヘッダーが正しく構成されていなくても正しく表示されるため、問題の検出が難しくなります。
ページがutf-8で正しくエンコードされている場合は、htmlエンティティは必要ありません。必要な文字を直接使用してください。
以前のすべての答えは私には理にかなっています。
さらに、それは主に、使用するエディタとドキュメントの言語に依存します。エディターの最小要件として、それはドキュメント言語をサポートすることです。つまり、テキストが日本語の場合は、テキストを表示しない(つまり、ドキュメント自体のエンティティがない)エディタを使用することに注意してください。英語の場合は、古いvimのようなエディターを使用して、相対的にめったにないエンティティを使用することもできます&copy; と友達。もちろん:&gt; for>およびその他のHTMLスペシャルには、依然としてエスケープが必要です。しかし、他のラテン1言語(ドイツ語、フランス語など)を使用しても、äを書くのは苦痛です。
さらに、私は目に見えない文字のエンティティや、標準ASCIIに似ているため簡単に混乱するエンティティを個人的に作成しています。たとえば、u1173(一部の文字セットではダッシュのように見えます)または垂直バーのように見えるu1175があります。いずれにせよ、エンティティにはエンティティを使用します。