エンコーディングは、情報をある形式または形式から別の形式または形式に変換するプロセスであり、コンピューター プログラミング言語のコード、または略してエンコーディングとも呼ばれます。文字や数字などを所定の方法で数値にエンコードしたり、情報やデータを所定の電気パルス信号に変換したりすることができます。コーディングは、電子コンピュータ、テレビ、リモコン、通信などで広く使用されています。エンコーディングは、情報をある形式または形式から別の形式または形式に変換するプロセスです。デコードはエンコードの逆のプロセスです。——百度
百科事典
コンピュータの最下層には 0 と 1 しか格納できません。それが 127 などの日常生活で遭遇する数字であれば、これを 10 進数と 2 進数に変換して、コンピュータは 01111111 を格納できます。ただし、コンピュータが文字を格納する場合は、漢字、英語の文字に似ています。記号やその他のコンテンツはどのように保存されますか?
現在のテキスト エンコーディング標準には、主に ASCII、GB2312、GBK、Unicode などが含まれます。ASCII エンコーディングは、最も単純な西洋のエンコーディング スキームです。GB2312、GBK、および GB18030 は、中国語の文字エンコード方式の国家標準です。ISO/IEC 10646 と Unicode はどちらもグローバル文字エンコーディングの国際標準です。
アスキー
ASCII (American Standard Code for Information Interchange): American Standard Code for Information Interchange は、ラテン文字に基づくコンピュータ コード システムで、主に現代英語やその他の西ヨーロッパ言語を表示するために使用されます。これは最も一般的な情報交換標準であり、国際標準 ISO/IEC 646 と同等です。ASCII は 1967 年に初めて標準タイプとして公開され、1986 年に最後に更新されました。これまでに合計 128 文字が定義されています。
米国では ASCII コードで十分ですが、その他の国では十分ではないため、各国のさまざまなコンピュータ メーカーが自国の文字を表すためのさまざまなエンコード方式を発明してきました。の最上位ビットは一般に 1 に設定されます。つまり、最上位ビットが 0 の場合は ASCII コードを表し、1 の場合は各国の文字を表します。これらの拡張エンコーディングのうち、ISO 8859-1 と Windows-1252 は西ヨーロッパ諸国で人気があり、GB2312、GBK、および Big5 は中国で人気があります。
ISO-8859-1
ISO 8859-1 は Latin-1 とも呼ばれます。西ヨーロッパの文字も一緒に結合されるため、1 文字を表すのに 1 バイトを使用しますが、26 個の英語文字ではありません。0 ~ 127 は ASCII、128 と同じです。 ~ 255 さまざまな意味が与えられます。128 ~ 255 のうち、128 ~ 159 は一部の制御文字を表し、160 ~ 255 は一部の西欧文字を表します。
GB2312
アメリカや西ヨーロッパの文字には 1 バイトで十分ですが、中国語には明らかに不十分です。中国語の最初の標準は GB2312 です。GB2312 標準は、主に一般的な簡体字を対象としており、一部の稀な単語を除き、繁体字を除く約 7,000 の漢字を含みます。GB2312 では、漢字を表すために 2 バイトが使用されます。この 2 バイトの最上位ビットは 1 です。 0 の場合、ASCII 文字とみなされます。これら 2 バイトのうち、最初のバイト範囲は 1010 0001 (10 進数 161) ~ 1111 0111 (10 進数 247) で、2 番目のバイト範囲は 1010 0001 (10 進数 161) ~ 1111 1110 (10 進数 254) です。
GBK
GBK は GB2312 に基づいており、GB2312 との下位互換性があります。つまり、GB2312 でエンコードされた文字のバイナリ表現は、GBK エンコードでもまったく同じです。GBK は 14,000 を超える漢字を追加し、繁体字を含む合計約 21,000 の漢字を追加しました。GBK は固定 2 バイト表現も使用しており、最初のバイト範囲は 1000 0001 (10 進数 129) ~ 1111 1110 (10 進数 254) です。 2 番目のバイトの範囲は、0100 0000 (10 進数 64) ~ 0111 1110 (10 進数 126) および 1000 0000 (10 進数 128) ~ 1111 1110 (10 進数 254) です。
GB18030
GB18030 は GBK との下位互換性があり、55,000 文字以上、合計 76,000 文字以上の文字が追加されており、これには多くの少数民族の文字や統一された中国語、日本語、韓国語の文字が含まれます。GB18030 のすべての文字を 2 バイトで表すことはできなくなりました。GB18030 は可変長エンコーディングを使用します。一部の文字は 2 バイトで、一部の文字は 4 バイトです。2 バイト エンコーディングでは、バイト表現範囲は GBK と同じです。4 バイトのエンコーディングでは、最初のバイトの値は 1000 0001 (10 進数 129) ~ 1111 1110 (10 進数 254) で、2 番目のバイトの値は 0011 0000 (10 進数 48) ~ 0011 1001 (10 進数 57) です。 3 番目のバイトの値は 1000 0001 (10 進数 129) ~ 1111 1110 (10 進数 254) で、4 番目のバイトの値は 0011 0000 (10 進数 48) ~ 0011 1001 (10 進数 57) です。
Big5
Big5 は繁体字中国語を意味し、台湾、香港などで広く使用されています。Big5 には 13,000 を超える繁体字中国語文字が含まれており、GB2312 と同様に 1 文字は 2 バイトで表されます。これら 2 バイトのうち、最初のバイト範囲は 1000 0001 (10 進数 129) ~ 1111 1110 (10 進数 254) で、2 番目のバイト範囲は 0100 0000 (10 進数 64) ~ 0111 1110 (10 進数 126) および 1010 0001 (10 進数 161) ~です。 1111 1110 (10 進数 254)。Big5 は GB18030、GBK、GB2312 とは互換性がありません。
ユニコード
Unicode は、ユニバーサル コードや Unicode とも呼ばれ、文字セット、エンコード スキームなどを含む、コンピュータ サイエンスの分野の業界標準です。Unicode は、従来の文字エンコーディング スキームの制限を解決するために作成され、言語間およびプラットフォーム間のテキスト変換と処理の要件を満たすために、各言語の各文字に統一された一意のバイナリ エンコーディングを設定します。
国際標準化機構 (ISO) は、世界中のすべての言語で使用される文字、記号、単語に統一した番号を付けています。各文字には、それに対応する一意の番号が割り当てられています (ASCII コード番号は変更されません)。文字番号の範囲は次のとおりです。 0x000000 ~ 0x10FFFF。このセットは、Universal Multiple-Octet Coded Character Set (略して UCS) と呼ばれ、一般に Unicode とも呼ばれます。Unicode 文字セットは、すべての文字に番号を付けるだけであり、これらの番号のエンコード ルールは指定しません。したがって、さまざまな Unicode エンコード ルール、Unicode Transformation Format が後で登場しました。UTF-8、UTF-16、UTF-32 などの典型的な Unicode エンコード ルール。
UTF-32
Unicode 変換フォーマット 32 は、Unicode 文字セットを 32 ビット (4 バイト) でエンコードします。エンコードの際、Unicode 文字セットの各文字は 4 バイトで表され、その文字に対応する Unicode 番号が直接 2 進数に変換されて保存されます。また、UTF-32 は各文字のエンコードに 4 バイトを使用するため、UTF-32 は ASCII エンコードと互換性がなく、ASCII エンコード標準を使用して作成されたプログラムを UTF-32 エンコードで開くと文字化けが表示されます。
UTF-16
Unicode Transformation Format 16 は、Unicode 文字セットを 16 ビット (2 バイト) または 32 ビット (4 バイト) でエンコードします。Unicode 文字番号 0 65535 の文字には2 バイト エンコーディングを使用し、各文字の番号を 2 バイトの 2 進数 0x0000 0xFFFF に直接変換します。0xD800 ~ 0xDBFF の範囲の Unicode 文字セットの数字は文字を表しません。UTF-16 は、この数字を使用して Unicode 文字セットの 0xFFFF より大きい文字番号とマップし、拡張 4 バイト エンコーディングを取得します。UTF-16 は ASCII エンコードとも互換性がありません。
UTF-8
UTF-8 (8 ビット、ユニバーサル文字セット/Unicode 変換形式) は、Unicode の可変長文字エンコーディングです。Unicode 標準の任意の文字を表すために使用でき、そのエンコードの最初のバイトは依然として ASCII と互換性があるため、ASCII 文字を処理する元のソフトウェアは、変更なし、またはわずかな変更のみで引き続き使用できます。したがって、電子メール、Web ページ、およびテキストを保存または送信するその他のアプリケーションでは、このエンコーディングが徐々に推奨されるようになりました。(UTF-8でエンコードする場合、中国語の文字は通常3バイトを占めます)
Base64
Base64 は、インターネット上で 8 ビット バイトコードを送信するための最も一般的なエンコード方式の 1 つで、64 個の印刷可能な文字に基づいてバイナリ データを表現する方式です。Base64 エンコードは、バイナリから文字に変換するプロセスであり、HTTP 環境で長い識別情報を伝達するために使用できます。Base64 エンコードは読み取ることができないため、読み取る前にデコードする必要があります。
Base64エンコーディングテーブル
索引
|
対応文字
|
索引
|
対応文字
|
索引
|
対応文字
|
索引
|
対応文字
|
0
|
あ
|
17
|
R
|
34
|
私
|
51
|
z
|
1
|
B
|
18
|
S
|
35
|
j
|
52
|
0
|
2
|
C
|
19
|
T
|
36
|
k
|
53
|
1
|
3
|
D
|
20
|
U
|
37
|
私
|
54
|
2
|
4
|
E
|
21
|
V
|
38
|
メートル
|
55
|
3
|
5
|
F
|
22
|
W
|
39
|
n
|
56
|
4
|
6
|
G
|
23
|
バツ
|
40
|
ああ
|
57
|
5
|
7
|
H
|
24
|
Y
|
41
|
p
|
58
|
6
|
8
|
私
|
25
|
Z
|
42
|
q
|
59
|
7
|
9
|
J
|
26
|
ある
|
43
|
r
|
60
|
8
|
10
|
K
|
27
|
b
|
44
|
s
|
61
|
9
|
11
|
L
|
28
|
c
|
45
|
t
|
62
|
+
|
12
|
M
|
29
|
d
|
46
|
あなた
|
63
|
/
|
13
|
N
|
30
|
e
|
47
|
v
|
||
14
|
○
|
31
|
f
|
48
|
w
|
||
15
|
P
|
32
|
g
|
49
|
バツ
|
||
16
|
Q
|
33
|
h
|
50
|
y
|
URLエンコード
URL エンコードは、ブラウザーがフォーム入力をパッケージ化するために使用する形式です。ブラウザはフォームからすべての名前と値を取得し、名前/値パラメーターのエンコード (送信できない文字の削除、データの並べ替えなど) を使用して、URL の一部として、または個別にサーバーに送信します。
URLエンコードルール
URL エンコードは次の規則に従います: 各名前と値のペアは & 文字で区切られ、フォームの各名前と値のペアは = 文字で区切られます。ユーザーが名前の値を入力しない場合でも、名前は表示されますが、値は表示されません。特殊文字 (つまり、漢字などの単純な 7 ビット ASCII ではない文字) は、パーセント記号 % を使用して 16 進数でエンコードされます。これには、=、&;、% などの特殊文字も含まれます。実際、URL エンコーディングは文字の 16 進数の ASCII コードです。ただし、少し変更があり、先頭に「%」を追加する必要があります。たとえば、「\」の ASCII コードは 92、92 の 16 進値は 5c であるため、「\」の URL エンコードは %5c です。
URLエンコーディングテーブル
バックスペース %08
|
私は%49
|
v %76
|
o %D3
|
タブ %09
|
J %4A
|
w %77
|
Ô %D4
|
改行 %0A
|
K %4B
|
× %78
|
&オチルダ; %D5
|
creturn %0D
|
L %4C
|
y %79
|
Ö %D6
|
スペース %20
|
M %4D
|
z %7A
|
&オスラッシュ; %D8
|
!%21
|
N %4E
|
{%7B
|
ù %D9
|
" %22
|
O %4F
|
| %7C
|
ú %DA
|
# %23
|
P%50
|
}%7D
|
Û %DB
|
$ %24
|
Q %51
|
~ %7E
|
ü %DC
|
% %25
|
R%52
|
¢%A2
|
Y %DD
|
& %26
|
S %53
|
£%A3
|
T %DE
|
' %27
|
T %54
|
¥%A5
|
ß %DF
|
( %28
|
U %55
|
| %A6
|
%E0まで
|
) %29
|
V%56
|
§ %A7
|
%E1 へ
|
*%2A
|
W %57
|
「」%AB
|
%E2
|
+%2B
|
X %58
|
&ない; %交流
|
&ティルダ; %E3
|
、%2C
|
Y %59
|
ˉ %AD
|
ä %E4
|
- %2D
|
Z %5A
|
o %B0
|
å %E5
|
. %2E
|
[ %5B
|
± %B1
|
æ %E6
|
/ %2F
|
\ %5C
|
a %B2
|
ç %E7
|
0 %30
|
] %5D
|
, %B4
|
è %E8
|
1 %31
|
^ %5E
|
μ %B5
|
é %E9
|
2 %32
|
_ %5F
|
» %BB
|
ê %EA
|
3 %33
|
` %60
|
¼ %BC
|
ë %EB
|
4 %34
|
a %61
|
½ %BD
|
ì %EC
|
5 %35
|
b %62
|
¿ %BF
|
í %ED
|
6 %36
|
c %63
|
à %C0
|
î %EE
|
7 %37
|
d %64
|
á %C1
|
ï %EF
|
8 %38
|
e %65
|
 %C2
|
e %F0
|
9 %39
|
f %66
|
à %C3
|
ñ %F1
|
: %3A
|
g %67
|
Ä %C4
|
ò %F2
|
; %3B
|
h %68
|
Å %C5
|
ó %F3
|
< %3C
|
i %69
|
Æ %C6
|
ô %F4
|
= %3D
|
j %6A
|
Ç %C7
|
õ %F5
|
> %3E
|
k %6B
|
è %C8
|
ö %F6
|
%3F
|
1%6C
|
%C9です
|
÷%F7
|
@ %40
|
m %6D
|
ê %CA
|
ø %F8
|
%41
|
n%6E
|
Ë %CB
|
%F9
|
B%42
|
o %6F
|
ì %CC
|
ú %FA
|
C%43
|
p %70
|
%CD で
|
○ %FB
|
D %44
|
q %71
|
Î %CE
|
ü %FC
|
E %45
|
r %72
|
Ï %CF
|
y %FD
|
F %46
|
%73
|
D %D0
|
t%FE
|
G %47
|
t %74
|
&Nチルダ; %D1
|
ÿ %FF
|
H %48
|
あなた %75
|
o %D2
|