7
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

実体参照についておさらい

Last updated at Posted at 2020-01-30

はじめに

最近文字コードについて整理している中で、改めて復習がてら
文字参照・実体参照について備忘録にしてみました。
ふわっと捉えている人や全く知らない方の参考になれば幸いです。

実体参照とは

HTMLで、主に特殊な文字を出力するために使用される特殊な単語。
特殊な文字の例としては
copyright sign 著作権表示記号の©、ドイツ語などに含まれるウムラウト¨
などがあります。

実体参照の書き方としては「¨」や「¨」(ウムラウトの例)
「数値文字実体参照」や「エンティティコード」とも言います。

たとえば、HTMLタグそのものを出力したい場合、「」とそのまま書いてしまうと、HTMLタグと認識されてしまうため、出力されなません。これは、「<」や「>」が、タグを囲む記号と見なされるため。
そこで、「<」や「>」を、そのままの文字として出力する方法が必要となります。そのため、こういった記法が存在します。

「文字実体参照」と「数値文字参照」

実体参照には上記の例のように2通りの書き方がありますが、もう少し詳しく見ていきたいと思います。

■文字実体参照
「文字の名前」を指定する方法。
「&文字の名前;」とすることで、その文字が出力されます。
よく使われる文字の「文字の名前」は、以下の通り。
 
・「"」:"
・「&」:&
・「<」:<
・「>」:>
・「 」: 

たとえば、「<"あい&うえお">」をHTMLで出力する場合には「<"あい&うえお">」と記述することになります。
その他、多くの文字や記号にこの名前が付けられているが、このように元の名前(一般的な呼び名)から変に短縮されているため分かりにくい。。。
間違えないよう注意が必要です。

■数値文字参照
「Unicodeでの文字コード」を指定する方法。
「&#10進数の文字コード;」、あるいは「&#x16進数の文字コード;」という形でUnicodeの文字コードを指定すると、その文字を出力することができます。
たとえば「あ」はUnicodeでは0x3042(==12354)のため、「あ」もしくは「あ」と記述します。
数値文字参照であれば、Unicodeの文字であればたいがいの文字を表現することができます。
ただし、Webブラウザが対応していること、クライアント側にフォントが存在することが条件となるので注意が必要です。

2つの書き方の違いについて

結論から言えば、「文字実体参照」と「数値文字参照」は、記法が異なるだけで、基本的に同じ機能です。
使い分けに関しては見た目でわかりやすいため通常は「文字実体参照」を使用し、
強制的にUnicodeで表示させたい場合などには数値文字参照を用いるのがよさそうです。日本語だと文字化けするケースとか。

終わりに

よく使うものであれば文字実体参照のほうで覚えてしまえるレベルですし、活用は楽かと思います。
しかし、文字コードを考慮しなければならない場合などには数値文字参照が望ましいので、やはりチートシートなどを
用意して、いちいち調べる時間を省く工夫をしておくと良さそうです。ツールも活用していきましょう。

変換ツール↓
http://yasu.asuka.net/orkut/conv.html

必要な情報を整理して引き出すことは、プログラミングだけでなく様々な場面で役立つので
自分なりの工夫をしてみましょう!(一番自分自身に言い聞かせています・・・!)

何かご指摘や追加して欲しい情報などあればご気軽にご連絡お願いします!
これからもこんな感じで少しずつ備忘録・チートシートなども増やしていきたいと思います。

参考:
https://takuki.com/dennou/42-unicoder.htm

7
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?