符号化文字集合と符号化形式
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可変長 | 世界中の文字に対応 |

