符号化文字集合と符号化形式
1.符号化文字集合:「文字」と「文字に割り当てた番号」の対応表
2.符号化形式:「文字に割り当てた番号」と「実際にコンピュータさんが扱う数字」の対応表
参考:アスキーコードなどは「文字に割り当てた番号」と「実際にコンピュータさんが扱う数字」が同じ
引用元 URL
図引用元 URL
UnicodeEncodeError
→エンコードできなかった際に発生する
「あ」のエンコード結果
"あ".encode('utf-8') >>> b'\xe3\x81\x82'
"あ".encode('cp932') >>> b'\x82\xa0'
「�」のエンコード結果
"�".encode('utf-8') >>> b'\xef\xbf\xbd'
"�".encode('cp932') >>> UnicodeEncodeError
項目 | 説明 | 備考 |
---|---|---|
b’...‘ | バイトコード | |
u’...‘ | Uniコード(python3.xからは不要) | |
\x○○ | 16進数hexを表す |
BOM
"あ" encode('utf-8')
BOM | BOM | BOM | ||||
---|---|---|---|---|---|---|
10進数 | 227 | 129 | 130 | |||
16進数 | e3 | 81 | 82 | |||
10進数 | 239 | 187 | 191 | 227 | 129 | 130 |
16進数 | ef | bb | bf | e3 | 81 | 82 |
ASCII
・7ビット(2^7)で表現
・先頭の「0」(=1ビット)は「パリティ」
- | 上桁(2進数) | 0000 制御 |
0001 制御 |
0010 | 0011 | 0100 | 0101 | 0110 | 0111 |
---|---|---|---|---|---|---|---|---|---|
下桁(2進数) | 16進数 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
0000 | 0 | NUL | DLE | SP | 0 | @ | P | ` | p |
0001 | 1 | SOH | DC1 | ! | 1 | A | Q | a | q |
0010 | 2 | STX | DC2 | " | 2 | B | R | b | r |
0011 | 3 | ETX | DC3 | # | 3 | C | S | c | s |
0100 | 4 | EOT | DC4 | $ | 4 | D | T | d | t |
0101 | 5 | ENQ | NAK | % | 5 | E | U | e | u |
0110 | 6 | ACK | SYN | & | 6 | F | V | f | v |
0111 | 7 | BEL | ETB | ' | 7 | G | W | g | w |
1000 | 8 | BS | CAN | ( | 8 | H | X | h | x |
1001 | 9 | HT | EM | ) | 9 | I | Y | i | y |
1010 | A | LF | SUB | * | : | J | Z | j | z |
1011 | B | VT | ESC | + | ; | K | [ | k | { |
1100 | C | FF | FS | , | < | L | |l | ||
1101 | D | CR | GS | - | = | M | ] | m | } |
1110 | E | SO | RS | . | > | N | ^ | n | ~ |
1111 | F | SI | US | / | ? | O | _ | o | DEL |
例
文字 | 上桁 | 下桁 | 文字コード |
---|---|---|---|
A | 0100 | 0001 | 01000001 |
制御文字
「0000」と「0001」の2列を制御文字という
比較
コード名 | サイズ | 備考 |
---|---|---|
ASCII | 7bit(=2^7) | |
Jis | 1byte(=8bit =2^8) | |
SJis | 2byte(=16bit =2^16) | Windows |
EUC | 2byte or 3byte(補助漢字など) | UNIX |
Unicode | 1~6byte可変長 | 世界中の文字に対応 |