なぜHTML文字エンティティが必要ですか?彼らは何が良い?私はその点を見ない。なぜHTML文字エンティティが必要ですか?
答えて
2つの主なものがあります。
- 現在の文字セットで定義されていない文字を使用できます。たとえば、合法的にASCIIを文字セットとして使用することはできますが、依然として任意のUnicode文字を使用することができます。
- Simonが指摘したように、HTMLは特別な意味を持つ文字を引用することができます。
"1 < 2
"は、あなたのページに "1 < 2
"を入れることができます。
長い答え:
HTMLタグを開くために「<
」を使用しているので、あなたがテキストとしてあることをしたい場合、あなたは単に「<
」を入力することはできません。したがって、あなたは "私のページにのテキスト<
がほしい"と言う方法が必要です。 HTMLを設計した人(つまり、実際にはSGML、HTMLの前身)は、 '
'(スペースが崩れていないか、改行を許している)のようなものを置くことができるように、 '&
何か;
' 。もちろん、今度は '&
'と言うべきだから、 '&
'となるよ...
+1:
しかし、私はちょうど "
文字エンティティは、.exexのHTMLを書き込むために予約された文字を表すために使用されます。 <、>、/、&など、あなたのコンテンツにこれらの文字を表現したい場合は、文字エンティティを使用する必要があり、これはにパーサがコンテンツを区別し、あなたが支援するエンティティを使用
をマークアップするのに役立ちますパーサーは、文字をHTMLとして表現する必要があるかどうかを区別し、実際にユーザーに表示したいものをHTMLとして指定します。
、私は>
は "< /皮肉>" タグが消えてしまいますその< /皮肉のようにそれを意味するものではありませんHTML
で文字通りこれを入力
例えば
HTMLのような定義されたタグを持っていないように私はその
ようにそれを意味するものではありません。この場合、エンティティを使用するとテキストが正しく表示されます。
いいえ、本当に!& lt;/sarcasm & gt;
本当に、ノー
を与えます! </sarcasm >
が望ましい。
これらは、&
,<
,>
,"
およびおそらく
から離れていません。他のすべての文字については、UTF-8を使用してください。
「"」は実際には属性の中でのみ必要です。 –
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;">
あなただけ必要<
,および"
を使用して、テキストとマークアップのあいまいさを回避します。
他のすべてのエンティティは、基本的にUnicodeエンコーディングで廃止されていますが、コビニシティとしてのみ残っています(しかし、良いテキストエディタには、それらを置き換えるマクロ/スニペットが必要です)。 XHTMLでは
(例えば
が動作しません)、スタンドアローンのXMLパーサでは動作しませんので、基本的な数を除くすべてのエンティティは、問題があります。
必要なすべてのXHTMLエンティティを解析する XMLパーザ(オプションは通常は「resolve externals」と呼ばれます)は遅く、DTDカタログが必要です。あなたがDTDカタログを無視したり壊したりすると、あなたはDDoS of W3C serversに参加します。
この回答は専門用語を混乱させることに注意してください。問題は* name *、* external *、* parameter *エンティティではなく、* character *エンティティに関するものでした。 – kjhughes
- 1. なぜcoutにヘッダ文字列が必要ですか?
- 2. JDBC MySQL文字エンコーディング:useUnicodeはなぜ必要ですか?
- 3. webpackにhtmlファイルが必要なときに、なぜ場所文字列を取得するのですか?
- 4. 最新のブラウザをサポートするには、HTMLにはまだASCII /エンティティ文字が必要ですか?
- 5. htmlエンティティ/特殊文字デコード
- 6. なぜreturn文が必要なのですか
- 7. 一部のHTMLエンティティをデコードすると出力が文字化けするのはなぜですか?
- 8. BLToolkit with Linq - なぜ `using`文が必要ですか?
- 9. なぜ ":nodoc:"構文が必要ですか?
- 10. mod_rewrite - RewriteCond - なぜ比較構文が必要ですか?
- 11. なぜバイナリコードコンバータが必要ですか?
- 12. なぜNotificationCompatが必要ですか?
- 13. なぜServer.HtmlEncodeが必要ですか?
- 14. なぜinstantiateViewContollerが必要ですか?
- 15. なぜDataBind()メソッドが必要ですか?
- 16. なぜHadoop KMSが必要ですか?
- 17. なぜReaderLockが必要ですか?
- 18. なぜコンテキストリダクションが必要ですか?
- 19. なぜsession_ destroy()が必要ですか?
- 20. なぜContinueWithメソッドが必要ですか?
- 21. なぜweb.debug.configが必要ですか?
- 22. なぜトークンスキームが必要ですか?
- 23. なぜasyncio.coroutineデコレータが必要ですか?
- 24. なぜcmakeが必要ですか?
- 25. バッシュプログラミング、なぜバックスラッシュが必要ですか?
- 26. なぜ[basic.scope.class]/2が必要ですか?
- 27. なぜlvalueが必要ですか?
- 28. なぜFLAGSが必要ですか?
- 29. なぜng-clickが必要ですか?
- 30. onelogin:なぜRequestedAuthnContextが必要ですか?
3.何らかの理由で直接入力できない文字を使用できます。簡単な例として、おそらくキーボードに「gräßlich」という単語を入力することはできませんが、「gr ä ß lich」と入力することは問題ありません。 (もちろん、他の場所から "ä"と "ß"という文字をコピー&ペーストすることはできますが、それは便利な場所ではありません) –
RegDwight、私は故意にそれを残しました。キーボード/ OSで入力する方法を学ぶ方がいいですし、これを一度しか必要としない場合はコピーする方が良いでしょう。エンティティの不必要な/不足しているページは読みにくいです。 –