文字実体参照について

文字実体参照について

Posted at November 2,2005 11:50 PM
Tag:[Entity, HTML]

HTMLタグの開始タグ「<」終了タグ「>」などを画面にそのまま表示するための「文字実体参照」について解説します。

1.基本

例えば、

<foo>

という文字をそのまま入力しても、画面には何も表示されません。

これは「<」と「>」で括られた部分をマークアップの開始および終了文字、つまりHTMLタグと誤認してしまうためです。

ブラウザ上でこれを表示させるためには、

&lt;foo&gt;

と入力する必要があります。この置き換えられた「&lt;」や「&gt;」等を「文字実体参照」といいます。

分類的には「文字参照」という定義の中に「数値文字参照」と「文字実体参照」という定義が存在します。

2.文字実体参照

主な(というか、主観的によく使う)文字実体参照は下記の通りです。

文字文字実体参照
<&lt;
>&gt;
&&amp;
"&quot;
半角空白&nbsp;
«&laquo;
»&raquo;
©&copy;

他の文字実体参照は下記にあります。

WEB ARCHIVES REPRINTXHTML 文字実体参照
ばけらの HTML リファレンスHTMLで使える文字実体参照

3.数値文字参照

「数値文字参照」は、10進数または16進数によって該当文字を参照します。先の例であれば「<」は「&#60;」、「>」は「&#62;」となります。数値実体参照も文字実体参照と同じ効果です。
一覧はネットを検索すればすぐにみつかりますが、下記のページで簡単に文字を数値文字参照に変換することができます。また上記の文字実体参照一覧に掲載されていないものも変換できるので重宝しています。

Software CollectionsHTMLエンティティ化

4.文字参照の勧め

「<」や「>」を画面に表示する方法が分からずに、全角の「<」や「>」で代用するケースをときどきみかけます。

が、個人的には文字参照することを推奨します。

理由は、全角文字の「<」や「>」で代用したり、他の文字に置き換えて表示した場合、コピー&ペースト後の修正に手間がかかることと、誤ってそのまま利用したときに当然期待通りの動作にならず、原因が発覚しにくいためです(個人的にこれで一度苦労した経験あり)。

また「&」については文字実体参照を行わなくても主要ブラウザで正常に表示されますが、ページをXHTML1.0として表示する場合、実体参照(&amp;)で記述することが定められています。

ブラウザに「&」を表示しないも実体参照が必要です。たとえばリンクのURLに&を含む場合がこれに該当します。

参考サイトは下記です。ありがとうございました。

HTML 4.01仕様書(邦訳)5.3 文字参照
XHTML 1.0(邦訳)W3C勧告 2000年1月26日版

2005.11.04 追記
表に半角空白を追記しました。

2006.12.26 追記
実体参照に誤りがありましたので修正しました。

2012.04.07 追記
本文を一部見直しました。

関連記事
トラックバックURL


トラックバック

改行を変換するプラグイン from ♪poohな毎日♪
HTMLタグなどをblogで表示する場合、そのまま表示させるとうまく出来ないか、... [続きを読む]

Tracked on November 3, 2005 9:17 PM

文字実体参照 from 裏日記・・・気ままに更新・・・備忘録
Blogを書いていて覚え書きのための備忘録をエントリーする際に困ったことがありました。http://... [続きを読む]

Tracked on March 22, 2006 9:41 PM

PCトラブル from はろーねっと
こんにちは。小粋空間: ホームページ アーカイブを興味深く読ませていただきました。勉強になりました。実体参照文字、難しいですよね。全角文字の「<」や「>」... [続きを読む]

Tracked on April 16, 2006 7:40 PM

from MAKIZOU.COM
♠♣♥♦はどのように見えていますか? HTMLの記号は、そのまま書いてもWebブラウザ上では正しく表示... [続きを読む]

Tracked on May 15, 2006 12:35 AM

HTMLのソースをエントリー内で表示させたい from KAJIYA.JP LOG
これは、いろいろと勉強しました。 はじめは<pre>とか<co... [続きを読む]

Tracked on October 5, 2006 6:00 PM
コメント

今までタグを画面表示させるのに苦労していた人です(笑)
これはいいですね?
別サイトで違う方法をお聞きしていたので、いつかカスタマイズする予定でしたが、このほうが楽ですね( ̄m ̄〃)ぷぷっ!
使わせていただきます!

[1] Posted by し?ちゃん : November 3, 2005 4:58 PM

こんにちは。

MTの場合、テンプレートタグに「encode_html="1"」をつけると、「<」等を文字実体参照に変換することができます。
しかし、テンプレートタグの出力全体が変換対象になるのが厄介です。
エントリーの中で、部分的にHTMLのソースコードを掲載したりする際には、「encode_html="1"」の手法は使えません(エントリーの中で、本来のタグとして動作させたい部分まで変換されてしまうので)。

当方では、改良型テキストフィルタープラグインを自作して、上の問題に対処しています。

[2] Posted by : November 3, 2005 5:07 PM

>し?ちゃんさん
こんばんは。
コメント&トラックバックありがとうございます。
大量にあると手入力は面倒なので、私はエディタ等で一括変換しています。

>壱さん
こんばんは。
プラグイン、ますますパワーアップされたようですね。
情報ありがとうございます。

[3] Posted by yujiro : November 4, 2005 11:31 PM
コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)