文字実体参照について
HTMLタグの開始タグ「<」終了タグ「>」などを画面にそのまま表示するための「文字実体参照」について解説します。
1.基本
例えば、
<foo>
という文字をそのまま入力しても、画面には何も表示されません。
これは「<」と「>」で括られた部分をマークアップの開始および終了文字、つまりHTMLタグと誤認してしまうためです。
ブラウザ上でこれを表示させるためには、
<foo>
と入力する必要があります。この置き換えられた「<」や「>」等を「文字実体参照」といいます。
分類的には「文字参照」という定義の中に「数値文字参照」と「文字実体参照」という定義が存在します。
2.文字実体参照
主な(というか、主観的によく使う)文字実体参照は下記の通りです。
文字 | 文字実体参照 |
---|---|
< | < |
> | > |
& | & |
" | " |
半角空白 | |
« | « |
» | » |
© | © |
他の文字実体参照は下記にあります。
WEB ARCHIVES REPRINT:XHTML 文字実体参照
ばけらの HTML リファレンス:HTMLで使える文字実体参照
3.数値文字参照
「数値文字参照」は、10進数または16進数によって該当文字を参照します。先の例であれば「<」は「<」、「>」は「>」となります。数値実体参照も文字実体参照と同じ効果です。
一覧はネットを検索すればすぐにみつかりますが、下記のページで簡単に文字を数値文字参照に変換することができます。また上記の文字実体参照一覧に掲載されていないものも変換できるので重宝しています。
Software Collections:HTMLエンティティ化
4.文字参照の勧め
「<」や「>」を画面に表示する方法が分からずに、全角の「<」や「>」で代用するケースをときどきみかけます。
が、個人的には文字参照することを推奨します。
理由は、全角文字の「<」や「>」で代用したり、他の文字に置き換えて表示した場合、コピー&ペースト後の修正に手間がかかることと、誤ってそのまま利用したときに当然期待通りの動作にならず、原因が発覚しにくいためです(個人的にこれで一度苦労した経験あり)。
また「&」については文字実体参照を行わなくても主要ブラウザで正常に表示されますが、ページをXHTML1.0として表示する場合、実体参照(&)で記述することが定められています。
ブラウザに「&」を表示しないも実体参照が必要です。たとえばリンクのURLに&を含む場合がこれに該当します。
参考サイトは下記です。ありがとうございました。
HTML 4.01仕様書(邦訳):5.3 文字参照
XHTML 1.0(邦訳)W3C勧告 2000年1月26日版
2005.11.04 追記
表に半角空白を追記しました。
2006.12.26 追記
実体参照に誤りがありましたので修正しました。
2012.04.07 追記
本文を一部見直しました。
- 「&nbsp;」の3つの機能
- HTMLやCSSでのプロトコル表記(http:、https:)の省略について
- input 要素の disabled 属性と readonly 属性の違い
- XHTML の「タグ」と「要素」の違いと正しい使い方
- XHTMLタグ一覧表示ツール
- ブロックレベル要素とインライン要素
≫ 改行を変換するプラグイン from ♪poohな毎日♪
HTMLタグなどをblogで表示する場合、そのまま表示させるとうまく出来ないか、... [続きを読む]
≫ 文字実体参照 from 裏日記・・・気ままに更新・・・備忘録
Blogを書いていて覚え書きのための備忘録をエントリーする際に困ったことがありました。http://... [続きを読む]
≫ PCトラブル from はろーねっと
こんにちは。小粋空間: ホームページ アーカイブを興味深く読ませていただきました。勉強になりました。実体参照文字、難しいですよね。全角文字の「<」や「>」... [続きを読む]
≫ from MAKIZOU.COM
♠♣♥♦はどのように見えていますか? HTMLの記号は、そのまま書いてもWebブラウザ上では正しく表示... [続きを読む]
≫ HTMLのソースをエントリー内で表示させたい from KAJIYA.JP LOG
これは、いろいろと勉強しました。 はじめは<pre>とか<co... [続きを読む]
今までタグを画面表示させるのに苦労していた人です(笑)
これはいいですね?
別サイトで違う方法をお聞きしていたので、いつかカスタマイズする予定でしたが、このほうが楽ですね( ̄m ̄〃)ぷぷっ!
使わせていただきます!
こんにちは。
MTの場合、テンプレートタグに「encode_html="1"」をつけると、「<」等を文字実体参照に変換することができます。
しかし、テンプレートタグの出力全体が変換対象になるのが厄介です。
エントリーの中で、部分的にHTMLのソースコードを掲載したりする際には、「encode_html="1"」の手法は使えません(エントリーの中で、本来のタグとして動作させたい部分まで変換されてしまうので)。
当方では、改良型テキストフィルタープラグインを自作して、上の問題に対処しています。
>し?ちゃんさん
こんばんは。
コメント&トラックバックありがとうございます。
大量にあると手入力は面倒なので、私はエディタ等で一括変換しています。
>壱さん
こんばんは。
プラグイン、ますますパワーアップされたようですね。
情報ありがとうございます。