文字コード:assii、Unicode、UTF-8


ASCIIコード
ASCII(American Standard Code for Information Interchange、米国情報交換標準コード)は、ラテン文字に基づくコンピュータ符号化システムで、主に現代英語や他の西欧言語を表示するために使用されている.
ASCIIコードは、指定された7ビットまたは8ビットのバイナリ配列を使用して128または256種類の可能な文字を表す.標準ASCIIコードは基礎ASCIIコードとも呼ばれ、7ビットのバイナリ数(最高ビットのバイナリは0)を使用してすべての大文字と小文字、数字0から9、句読点、およびアメリカ英語で使用される特殊な制御文字を表す.
拡張ASCII文字は128~255(0 x 80-0 xff)の文字です.拡張ASCIIは国際標準ではありません.
Unicodeコード
Unicodeは大きな符号化集合であり,各文字は1つの符号化に対応する.文字化けしの問題を解決するために、世界中の文字を統一します.
注意:Unicodeはシンボルセットにすぎず、シンボルのバイナリコードのみを規定していますが、このバイナリコードがどのように格納されるかは規定されていません.
例えば、1つのアルファベットAは1バイトで表すことができ、多くの漢字は2バイトで表すことができ、3つの4バイトで表すことができます.Unicodeが各文字の記憶方式を統一的に規定している場合、すなわち4バイトまたは5バイトで表すと、ASSIIコードの文字の最初の数バイトが0であり、記憶空間の大きな浪費をもたらし、これは受け入れられない.
漢字対応表
UTF-8
UTF-8はインターネット上で最も広く使われているUnicodeの実現方式である.他の実施形態は、UTF−16(文字は2バイトまたは4バイト)およびUTF−32(文字は4バイト)を含む.
UTF-8の最大の特徴は、長くなる符号化方式である.1~4バイトで1つのシンボルを表し、異なるシンボルに応じてバイト長を変化させることができる.
UTF-8の符号化規則:
1)バイトのシンボルについては,バイトの第1ビットを0とし,後7ビットをこのシンボルのunicodeコードとする.したがって、UTF-8符号化は、英字ではASCII符号と同じである.
2)nバイトの符号(n>1)については、1バイト目の前nビットがいずれも1、n+1ビット目が0、後バイトの前2ビットが一律に10とする.残りの言及されていないバイナリビットは、すべてこの符号のunicode符号とする.
次の表は、符号化ルールをまとめ、アルファベットxは、符号化可能なビットを表す.
Unicode     | UTF-8    
(    ) | (   )
--------------------+---------------------------------------------
0000 0000-0000 007F | 0xxxxxxx
0000 0080-0000 07FF | 110xxxxx 10xxxxxx
0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx
0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

上の表によると、UTF-8コードを解読するのは簡単です.1バイトの最初のビットが0である場合、このバイトは単独で1文字である.1番目のビットが1の場合、1が連続して何個あるかは、現在の文字が何バイトを占有しているかを示します.
次に、漢字「厳」を例に、UTF-8符号化の実現方法を示す.
「厳」のunicodeが4 E 25(100111000100101)であることが知られており、上記の表によれば、4 E 25が3行目の範囲内にあることがわかります(0000 0800-0000 FFFF)従って、「厳」のUTF-8符号化には、「1110 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxE 4 B 8 A 5です.
以上の部分は、文字コードノート:ASCII、Unicode、UTF-8から抜粋しています.