文字コード/符号化

概要

人が読める文字とマシンが処理できる符号を対応させたものが文字コードで、以下の2つの組み合わせ。

符号化文字集合
Coded Character Set: CCS、キャラクターセット。文字ごとに番号を割り当てられた文字の集合。
文字符号化方式
Character Encoding Scheme: CES、エンコーディングルール。符号化文字集合で定義された番号バイト列に返還するルール。

1バイト系

半角系の文字コードは、CCSのコードがそのままバイト列になる。

マルチバイト系

参考サイト

 

ASCII

概要

ASCII (American Standard Code for Information Interchange) はANSIによって規定されたラテン文字のコード体系。

7ビットの2進数(10進数で0~127、16進数で00~7F)にアルファベットなどのラテン文字や記号、制御コードを割り当てている。

符号化文字集合で割り当てられたコードポイントがそのままバイト列表現であり、文字符号化方式を包含している。

文字コードの構成

16進 10進 対応文字
00~1F 0~31 制御文字
20 32 空白文字
21~7E 33~126 アルファベットなどの図形文字
7F 127 制御文字DEL

文字集合と符合化

制御文字

16進 10進 記号 CS ESC 機能
00 0 NUL ^@ \0 ヌル文字
01 1 SOH ^A ヘッディング開始
02 2 STX ^B テキスト開始
03 3 ETX ^C テキスト終了
04 4 EOT ^D 伝送終了
05 5 ENQ ^E 送信問合せ
06 6 ACK -F 送信承認
07 7 BEL ^G \a ベル
08 8 BS ^H \b 後退
09 9 HT ^I \t 水平タブ
0A 10 LF ^J \n ラインフィード(改行)
0B 11 VT ^K \v 垂直タブ
0C 12 FF ^L \f フォームフィード
0D 13 CR ^M \r 復帰
0E 14 SO ^N シフトアウト
0F 15 SI ^O シフトイン
10 16 DLE ^P 伝送制御拡張
11 17 DC1 ^Q 装置制御1
12 18 DC2 ^R 装置制御2
13 19 DC3 ^S 装置制御3
14 20 DC4 ^T 装置制御4
15 21 NAK ^U 否定非承認
16 22 SYN ^V 同期符号
17 23 ETB ^W 伝送ブロック終結
18 24 CAN ^X キャンセル
19 25 EM ^Y 媒体終端
1A 26 SUB ^Z 文字置換
1B 27 ESC ^[ \e エスケープ
1C 28 FS ^\ ファイル分離
1D 29 GS ^] グループ分離
1E 30 RS ^^ レコード分離
1F 31 US ^_ ユニット分離
7F 127 DEL ^? 削除

DEL~削除

厳密には制御文字ではなく、誤った文字を削除するための文字。穿孔テープの時代に削除したい文字の位置でこの文字を打つと下位7ビット全てが1となり、この文字が読み飛ばされた。

DLE (Data Link Escape)~伝送制御拡張

RFC原文は以下のとおり。このコードの後に続く連続したコード群の意味を変更する。すなわちデータ伝送ネットワーク上ににおいてASCIIコード以外の意味を持たせる場合にのみ用いられる。

A communication control character which will change the meaning of a limited number of contiguously following characters. It is used exclusively to provide supplementary controls in data communication networks.

SYN (Synchronous Idle)~同期符号

キャラクター同期方式で、送信する文字列の前後に付加する同期用の文字符合。

図形文字

各欄の上段が文字の印字表現、中段がコードの16進表記、下段がコードの10進表記。

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
20 SP
20
32
!
21
33

22
34
#
23
35
$
24
36
%
25
37
&
26
38

27
39
(
28
40
)
29
41
*
2A
42
+
2B
43
,
2C
44

2D
45
.
2E
46
/
2F
47
30 0
30
48
1
31
49
2
32
50
3
33
51
4
34
52
5
35
53
6
36
54
7
37
55
8
38
56
9
39
57
:
3A
58
;
3B
59
<
3C
60
=
3D
61
>
3E
62
?
3F
63
40 @
40
64
A
41
65
B
42
66
C
43
67
D
44
68
E
45
69
F
46
70
G
47
71
H
48
72
I
49
73
J
4A
74
K
4B
75
L
4C
76
M
4D
77
N
4E
78
O
4F
79
50 P
50
80
Q
51
81
R
52
82
S
53
83
T
54
84
U
55
85
V
56
86
W
57
87
X
58
88
Y
59
89
Z
5A
90
[
5B
91
\
5C
92
]
5D
93
^
5E
94
_
5F
95
60 `
60
96
a
61
97
b
62
98
c
63
99
d
64
100
e
65
101
f
66
102
g
67
103
h
68
104
i
69
105
j
6A
106
k
6B
107
l
6C
108
m
6D
109
n
6E
110
o
6F
111
70 p
70
112
q
71
113
r
72
114
s
73
115
t
74
116
u
75
117
v
76
118
w
77
119
x
78
120
y
79
121
z
7A
122
(
7B
123
|
7C
124
)
7D
125
~
7E
126

括弧の英語表現

()はopening/closing parenthesis、{}はopening/closing brase、[]はopening/closing bracket

その他の記号の英語表現

!はexclamation point、#はnumber sign、*はasterisk、-はhyphen (minus)、.はperiod (decimal point)、/はslant、@はcommercial at、\はreverse slant、^はcircumflex。

コード全体

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI
10 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS RS GS US
20 SP ! # $ % & ( ) * + , . /
30 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
40 @ A B C D E F G H I J K L M N O
50 P Q R S T U V W X Y Z [ \ ] ^ _
60 ` a b c d e f g h i j k l m n o
70 p q r s t u v w x y z { | } ~ DEL