2009-06-19 10 views

答えて

22

2つの主なものがあります。

  1. 現在の文字セットで定義されていない文字を使用できます。たとえば、合法的にASCIIを文字セットとして使用することはできますが、依然として任意のUnicode文字を使用することができます。
  2. Simonが指摘したように、HTMLは特別な意味を持つ文字を引用することができます。
+0

3.何らかの理由で直接入力できない文字を使用できます。簡単な例として、おそらくキーボードに「gräßlich」という単語を入力することはできませんが、「gr ä ß lich」と入力することは問題ありません。 (もちろん、他の場所から "ä"と "ß"という文字をコピー&ペーストすることはできますが、それは便利な場所ではありません) –

+2

RegDwight、私は故意にそれを残しました。キーボード/ OSで入力する方法を学ぶ方がいいですし、これを一度しか必要としない場合はコピーする方が良いでしょう。エンティティの不必要な/不足しているページは読みにくいです。 –

14

"1 &lt; 2"は、あなたのページに "1 < 2"を入れることができます。

長い答え:

HTMLタグを開くために「<」を使用しているので、あなたがテキストとしてあることをしたい場合、あなたは単に「<」を入力することはできません。したがって、あなたは "私のページにのテキスト<がほしい"と言う方法が必要です。 HTMLを設計した人(つまり、実際にはSGML、HTMLの前身)は、 '&nbsp;'(スペースが崩れていないか、改行を許している)のようなものを置くことができるように、 '&何か;' 。もちろん、今度は '&'と言うべきだから、 '&amp;'となるよ...

+1

+1:で属性内に引用符を付けることもできます。 –

+0

しかし、私はちょうど " Hans

3

文字エンティティは、.exexのHTMLを書き込むために予約された文字を表すために使用されます。 <、>、/、&など、あなたのコンテンツにこれらの文字を表現したい場合は、文字エンティティを使用する必要があり、これはにパーサがコンテンツを区別し、あなたが支援するエンティティを使用

1

をマークアップするのに役立ちますパーサーは、文字をHTMLとして表現する必要があるかどうかを区別し、実際にユーザーに表示したいものをHTMLとして指定します。

、私は>

は "< /皮肉>" タグが消えてしまいますその< /皮肉のようにそれを意味するものではありませんHTML

で文字通りこれを入力

例えば

HTMLのような定義されたタグを持っていないように私はその

ようにそれを意味するものではありません。この場合、エンティティを使用するとテキストが正しく表示されます。

いいえ、本当に!& lt;/sarcasm & gt;

本当に、ノー

を与えます! </sarcasm >

が望ましい。

7

これらは、&amp;,&lt;,&gt;,&quot;およびおそらく&nbsp;から離れていません。他のすべての文字については、UTF-8を使用してください。

+0

「"」は実際には属性の中でのみ必要です。 –

4

SGMLとXMLでは、それらは文字用ではありません。それらは一般的な包含メカニズムであり、特殊文字の使用は多くの場合の1つに過ぎません。彼らはXMLモードでのみ動作し、ブラウザの設定で「有効」の解析モードを有効にせず、外部DTDファイルを使用することはできませんので

<!ENTITY signature "<hr/><p>Regards, <i>&myname;</i></p>"> 
<!ENTITY myname "John Doe"> 

エンティティのこの種のは、ウェブサイトのために有用ではありません。


エンティティは再帰的に展開できます。これにより、 "Billion Laughs Attack"と呼ばれるDenice of Serice攻撃にXMLを使用することができます。


Firefoxは(XULと、そのような中で)内部的にエンティティを使用して国際化とブランドに依存しないメッセージ(フロックとのiceweaselのための生活を楽にするため):HTMLで

<!ENTITY hidemac.label "Hide &brandShortName;"> 
<!ENTITY hidewin.label "Hide - &brandShortName;"> 

あなただけ必要&lt;,および&quot;を使用して、テキストとマークアップのあいまいさを回避します。

他のすべてのエンティティは、基本的にUnicodeエンコーディングで廃止されていますが、コビニシティとしてのみ残っています(しかし、良いテキストエディタには、それらを置き換えるマクロ/スニペットが必要です)。 XHTMLでは


(例えば&nbsp;が動作しません)、スタンドアローンのXMLパーサでは動作しませんので、基本的な数を除くすべてのエンティティは、問題があります。

必要なすべてのXHTMLエンティティを解析する XMLパーザ(オプションは通常は「resolve externals」と呼ばれます)は遅く、DTDカタログが必要です。あなたがDTDカタログを無視したり壊したりすると、あなたはDDoS of W3C serversに参加します。

+0

この回答は専門用語を混乱させることに注意してください。問題は* name *、* external *、* parameter *エンティティではなく、* character *エンティティに関するものでした。 – kjhughes

関連する問題