© 2007-2024, Kyu-hachi TABATA Last updated  2022/08/28

文字について (2) エンティティ表記

ASCIIコード表には、制御文字とア ルファベット文字がありました。アルファベットの 場合、キーボードで入力したものがそのままテキストとして打ち出されます。

対して、制御文字 (例えば、リターンキー、カーソル移動キー、エスケープキー) だとキーボードにあっても、動作につながるだけ で、それをテキストにすることはできません。これを可能にするのが、HTML の エ ンティティ表記です。制御文字をテキストに埋め込むことができるのです。

そして、同じ方法(つまりエンティティ表記)で
アルファベットもテキスト化で きます。テキストはそのまま、a, b, c と打てばいいので無駄なやり方のように見えますが、エンティティ表記を使うことで、一種の暗号化(ロボット対 策ができるのです。
 


■1.エンティティ (entity) 表記

簡単にいうと、「&; で 挟む」だけです。何を挟むかというと、ASCIIコードやコード名称、略号 (SH, SX, D1, D2 など)
で す。
  1. コード名称か略号の時は、 “&__;” (純 エンティティ表記)
  2. 10 進コードを使う時は、"&#__;" 
  3. 16 進コードを使う時は、 "&#x__;" 

エンティティ表記
ブ ラウザでの見え方
1.純エンティティ表記
<
<
&LF;
(改行される)
&BL;
(ベルが鳴る)
2.10進コード使用の
  エンティティ表記
&#60; <
&#225 á
&#109;&#97;&#100;&#111; mado
3.16進コード使用の
  エンティティ表記
&#x3C; <
&#xE1; á
&#x6D;&#x61;&#x64;&#x6F; mado

■2.アルファベットのエンティティ表記

10進コードや16進コードを使うと 文字列でも使用できます。 abc であれば、&#97;&#98;&#99; とソースに書き込めば、abc と表示されるのです。でも、「これって、メリットあるの?」と思いますよね。キーボードで "abc" と打てば簡単なのに、わざわざ、ASCII コードを拾ってエンティティ表記にしてソースに書き込むわけですから。

実は、これ、ロボット型プログラムの対処に使 うテクニックなのです(→ロボット対 策)。ロボット、ボット、クローラーなどと呼ばれる巡回 型のプログラムは、さまざまな情報を web から自動回収する仕事をしているのですが、メールアドレスなどを回収され、かつ悪用されると、スパムなどの発信に使われかねません。それで、メールアドレ スの部分だけをこのエンティティ表記にして、その文字列をメールアドレスと認識さ れにくくするのです。

ただ、まぁ、これはエンティティの書式をロボットが解読できるようにしていれば、全く、意味がなくなります。そして、そ ういうプログラムを組むのはそれほど難しくないはず。で、一時期は、結構使われましたが、今ではほぼ無くなったように思 います。ただ、 JavaScript などとの組み合わせでは、今でも時々使われています。有効なのでしょうね。
 
 
■3.制御文字のエンティティ表記Olibetti Lettera

16進コードで 00h から 20h までと 7Fhの 33個のコードは、さまざまな制御命令(コマンド)キーになっています。それで、これをエンティティとして文字列 の中に入れると、改行や改ページなどの動作を起こすことができます。

よく使われる制御文字は、08h のバックスペース(BS)、0Ah の改行(LF)、0Dh の行 頭復帰(CR)、0Chの改ページ(FF)、1Bh のエ スケープ(EC)などです。

もとはタイプライターの動作を 基準にしており、「
印字以外の動作をするのが制御文字」と考えればわかりやすいと思いま す。また、コード名称も意味を知っていれば、比較的覚えやすいです。

ASCII コード
CTRL キー
(正規表現)
コー ド名 称
エンティティ表記
意 味
16進法 10進法 正式名称 略号
00
0

NUL NU
&NUL;
&NU;
&#x00;
&#0;
ヌル(何もしない、意味がない、null)
01
1 ^A

TC1, SOH SH
&TC1;
&SH;
&#x01;
&#1;
ヘディング開始 (start of heading)
02
2 ^B

TC2, STX SX
&TC2;
&SX;
&#x02;
&#2;
テキスト開始 (start of text)
03
3 ^C

TC3, ETX EX
&ETX;
&EX;
&#x03;
&#3;
テキスト終了 (end of text)
04
4 ^D

TC4, EOT ET
&EOT;
&ET;
&#x04;
&#4;
伝送終了 (end of transfer)
05
5 ^E

TC5, ENQ EQ
&ENQ;
&EQ;
&#x05;
&#5;
問い合わせ (end of quest)
06
6 ^F

TC6, ACK AK
&ACK;
&AK;
&#x06;
&#6;
肯定応答
07
7 ^G
\a
BEL BL
&BEL;
&BL;
&#x07;
&#7;
ベル (Bell)
08
8 ^H
\b
FE0
BS
&FE0;
&BS;
&#x08;
&#8;
バックスペース (back space)
09
9 ^I
\t
FE1
HT
&FE1;
&HT;
&#x09;
&#9;
水平タブ (horizontal tab)
0A
10 ^J
\n
FE2
LF
&FE2;
&LF;
&#x0A;
&#10;
改行 (line feed)
0B
11 ^K
\v
FE3 VT
&FE3;
&VT;
&#x0B;
&#11;
垂直タブ (vertical tab)
0C
12 ^L
\f
FE4 FF
&FE4;
&FF;
&#x0C;
&#12;
改ページ (form feed)
0D
13 ^M
\r
FE5 CR
&FE5;
&CR;
&#x0D;
&#13;
行頭復帰 (carriage return)
0E
14 ^N

SO SO
&SO;
&SO;
&#x0E;
&#14;
シフトアウト (shift out)
0F
15 ^O

SI SI
&SI;
&SI;
&#x0F;
&#15;
シフトイン (shift in)
10
16 ^P

TC7, DLE DL
&DLE;
&DL;
&#x10;
&#16;
伝送制御拡張
11
17 ^Q

DC1 D1
&DC1;
&D1;
&#x11;
&#17;
デバイス制御1:XONとして使用されることが多い
12
18 ^R

DC2
D2
&DC2;
&D2;
&#x12;
&#18;
デバイス制御2
13
19 ^S

DC3 D3
&DC3;
&D3;
&#x13;
&#19;
デバイス制御3:XOFFとして使用されることが多い
14
20 ^T

DC4 D4
&DC4;
&D4;
&#x14;
&#20;
デバイス制御4
15
21 ^U

TC8, NAK NK
&NAK;
&NK;
&#x15;
&#21;
否定応答
16
22 ^V

TC9, SYN SY
&SYN;
&SY;
&#x16;
&#22;
同期信号 (synchronicity)
17
23 ^W

TC10, ETB EB
&ETB;
&EB;
&#x17;
&#23;
ブロック転送終了 (end of block)
18
24 ^X

CAN CN
&CAN;
&CN;
&#x18;
&#24;
キャンセル (cancel)
19
25 ^Y

EM EM
&EM;
&EM;
&#x19;
&#25;
メディアの終端 (end of media)
1A
26 ^Z

SUB SB
&SUB;
&SB;
&#x1A;
&#26;
置換
1B
27 ^[

ESC EC
&ESC;
&EC;
&#x1B;
&#27;
エスケープ (escape)
1C
28 ^\

IS4, FS FS
&FS;
&FS;
&#x1C;
&#28;
ファイルセパレータ
1D
29 ^]

IS3, GS GS
&GS;
&GS;
&#x1D;
&#29;
グループセパレータ
1E
30 ^^

IS2, RS RS
&RS;
&RS;
&#x1E;
&#30;

レコードセパレータ
1F
31 ^

IS1, US US
&US;
&US;
&#x1F;
&#31;
ユニットセパレータ
20
32 ~

SPC SP
&SPC;
&SP;
&#x20;
&#32;
間隔 (space)
7F
127


DEL
DT
&DEL;
&DT;
&#x7F;
&#127;
抹消 (delete)
1C
28


LARR

&LARR;



左向き矢印(←)
1D
29


UARR

&UARR;



上向き矢印(↑)
1E
30


RARR

&RARR;



右向き矢印(→)
1F
31


DARR

&DARR;



下向き矢印(↓)
22
34


QUOT

&QUOT;

&#x22;
&#34;
クオーテーション(”)
26
40


AMP

&AMP;

&#x26;
&#40;
アンパサンド(&)。実態参照で使用
3C
60


LT

&LT;

&#x3C;
&#60;
小なりの記号(<)。タグ表記にも使用
3F
62


GT

&GT;

&#x62;
&#62;
大なりの記号(>)。タブ表記にも使用
A9
169


COPY

&COPY;

&#x169;
&#169;
著作権の表示(©)

注1:1C〜1F は重複していますが、現在の標準的な配列では矢印4種に割り振られています。
注2:Ctrl キーとの組み合わせは、キーボードから入力するときのキーアサインで、キャレット(^)は Ctrl キーの打鍵を意味します。また、これらの表記(^I など)は、正規表現でも利用できます。併せて表記した \t なども正規表現で使われる略号ですが、フォントによっては \t と表記されます。
注3:名称や略号をもっと知りたければ、こちらこちらへ


とびら へ 前へ 次へ
↑ トップへ