ASCII
ASCII(American Standard Code for Information Interchange)は、7桁の2進数で表すことのできる整数の値にラテン文字、数字、記号、制御文字を割り当てた文字コードです。 なお「ASCIIコード」と表記されることもありますが、「C = コード」なのでコードが2重に掛かり正しくありません。
ASCIIは7ビットコードで、英語以外の言語には対応していません。そこで各国は8ビットコードに拡張して80h~FFhに独自の文字や記号を割り当てました。下で紹介する日本の「JIS X 0201」もその1つです。この結果各国間で文字コードに互換性がなくなり、違う国のコンピューターで見ると文字化けしてしまうという負の時代が続きました。
この問題を解決すべく生まれた国際的な統一文字コードUTF-8もASCIIには配慮しており、0~127番はASCIIそのものとなっています。
ASCII表
ASCIIは大きく分けると00h~1Fhと7Fhを含めた制御文字と、その他の文字・記号に分かれています。
| 0- | 1- | 2- | 3- | 4- | 5- | 6- | 7- | |
|---|---|---|---|---|---|---|---|---|
| -0 | NUL | DLE | SP | 0 | @ | P | ` | p |
| -1 | SOH | DC1 | ! | 1 | A | Q | a | q |
| -2 | STX | DC2 | " | 2 | B | R | b | r |
| -3 | ETX | DC3 | # | 3 | C | S | c | s |
| -4 | EOT | DC4 | $ | 4 | D | T | d | t |
| -5 | ENQ | NAK | % | 5 | E | U | e | u |
| -6 | ACK | SYN | & | 6 | F | V | f | v |
| -7 | BEL | ETB | ' | 7 | G | W | g | w |
| -8 | BS | CAN | ( | 8 | H | X | h | x |
| -9 | HT | EM | ) | 9 | I | Y | i | y |
| -A | LF | SUB | * | : | J | Z | j | z |
| -B | VT | ESC | + | ; | K | [ | k | { |
| -C | FF | FS | , | < | L | \ | l | | |
| -D | CR | GS | - | = | M | ] | m | } |
| -E | SO | RS | . | > | N | ^ | n | ~ |
| -F | SI | US | / | ? | O | _ | o | DEL |
制御文字
制御文字は表示するための文字や記号ではありません。モニターやプリンターなどの機器を制御するために用いられます。STXやETX、CRやLFはRS-232Cなどの通信電文でもよく用いられています。
| 16進数 | 略語 | 語源 | 意味 |
|---|---|---|---|
| 00 | NUL | Null | ヌル文字 |
| 01 | SOH | Start of Heading | ヘッディング開始 |
| 02 | STX | Start of Text | テキスト開始 |
| 03 | ETX | End of Text | テキスト終了 |
| 04 | EOT | End of Transmission | 伝送終了 |
| 05 | ENQ | Enquiry | 問い合わせ |
| 06 | ACK | Acknowledgement | 肯定応答 |
| 07 | BEL | Bell | ベル |
| 08 | BS | Back Space | 後退 |
| 09 | HT | Horizontal Tabulation | 水平タブ |
| 0A | LF | Line Feed | 改行 |
| 0B | VT | Vertical Tabulation | 垂直タブ |
| 0C | FF | Form Feed | 書式送り |
| 0D | CR | Carriage Return | 復帰 |
| 0E | SO | Shift Out | シフトアウト |
| 0F | SI | Shift In | シフトイン |
| 10 | DLE | Data Link Escape | 伝送制御拡張 |
| 11 | DC1 | Device Control 1 | 装置制御1、XON |
| 12 | DC2 | Device Control 2 | 装置制御2 |
| 13 | DC3 | Device Control 3 | 装置制御3、XOFF |
| 14 | DC4 | Device Control 4 | 装置制御4 |
| 15 | NAK | Negative Acknowledgement | 否定応答 |
| 16 | SYN | Synchronous Idle | 同期信号 |
| 17 | ETB | End of Transmission Block | 伝送ブロック終結 |
| 18 | CAN | Cancel | 取消 |
| 19 | EM | End of Medium | 媒体終端 |
| 1A | SUB | Substitute | 置換 |
| 1B | ESC | Escape | エスケープ |
| 1C | FS | File Separator | ファイル分離標識 |
| 1D | GS | Group Separator | グループ分離標識 |
| 1E | RS | Record Separator | レコード分離標識 |
| 1F | US | Unit Separator | ユニット分離標識 |
| 7F | DEL | Delete | 抹消 |
ASCIIの特徴
- 大文字のASCII値の5ビット目を1にすると、小文字になります。
例:'A' ⇒ 41h ⇒ 61h ⇒ 'a' - 数字の上位4ビットを0にすると、対応する値が得られます。
例:'0' ⇒ 30h ⇒ 00h ⇒ 0
JIS X 0201
JIS X 0201 は「7ビット及び8ビットの情報交換用符号化文字集合」で、ASCIIのラテン文字にカタカナを追加した文字コードです。空白の部分は未定義です。
- 5Chと7EhはASCIIと文字が異なるので注意してください。
| 2- | 3- | 4- | 5- | 6- | 7- | A- | B- | C- | D- | E- | F- | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| -0 | 0 | @ | P | ` | p | ― | タ | ミ | ||||
| -1 | ! | 1 | A | Q | a | q | 。 | ア | チ | ム | ||
| -2 | " | 2 | B | R | b | r | 「 | イ | ツ | メ | ||
| -3 | # | 3 | C | S | c | s | 」 | ウ | テ | モ | ||
| -4 | $ | 4 | D | T | d | t | 、 | エ | ト | ヤ | ||
| -5 | % | 5 | E | U | e | u | ・ | オ | ナ | ユ | ||
| -6 | & | 6 | F | V | f | v | ヲ | カ | ニ | ヨ | ||
| -7 | ' | 7 | G | W | g | w | ァ | キ | ヌ | ラ | ||
| -8 | ( | 8 | H | X | h | x | ィ | ク | ネ | リ | ||
| -9 | ) | 9 | I | Y | i | y | ゥ | ケ | ノ | ル | ||
| -A | * | : | J | Z | j | z | ェ | コ | ハ | レ | ||
| -B | + | ; | K | [ | k | { | ォ | サ | ヒ | ロ | ||
| -C | , | < | L | \ | l | | | ャ | シ | フ | ワ | ||
| -D | - | = | M | ] | m | } | ュ | ス | ヘ | ン | ||
| -E | . | > | N | ^ | n | ‾ | ョ | セ | ホ | ゛ | ||
| -F | / | ? | O | _ | o | ッ | ソ | マ | ゜ |
おまけ
キャラクターLCD
組み込みシステムでよく用いられているキャラクターLCDというものがあります。これは横5ドット×縦8ドットで文字を表すもので、JIS X 0201と殆ど同じ並びとなっています。さらにE0h~FFhの空きエリアに、特殊な記号などを割り当てられてるのが一般的です。メーカーによって記号が一部変わることもありますが、概ね下図のようになっています。

上図はドット絵でわかりにくいので、文字に置き換えたものが下記表になります。
| 2- | 3- | 4- | 5- | 6- | 7- | A- | B- | C- | D- | E- | F- | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| -0 | 0 | @ | P | ` | p | ― | タ | ミ | α | p | ||
| -1 | ! | 1 | A | Q | a | q | 。 | ア | チ | ム | ä | q |
| -2 | " | 2 | B | R | b | r | 「 | イ | ツ | メ | β | Θ |
| -3 | # | 3 | C | S | c | s | 」 | ウ | テ | モ | ε | ∞ |
| -4 | $ | 4 | D | T | d | t | 、 | エ | ト | ヤ | µ | Ω |
| -5 | % | 5 | E | U | e | u | ・ | オ | ナ | ユ | σ | ü |
| -6 | & | 6 | F | V | f | v | ヲ | カ | ニ | ヨ | ρ | Σ |
| -7 | ' | 7 | G | W | g | w | ァ | キ | ヌ | ラ | g | π |
| -8 | ( | 8 | H | X | h | x | ィ | ク | ネ | リ | √ | |
| -9 | ) | 9 | I | Y | i | y | ゥ | ケ | ノ | ル | -1 | y |
| -A | * | : | J | Z | j | z | ェ | コ | ハ | レ | j | 千 |
| -B | + | ; | K | [ | k | { | ォ | サ | ヒ | ロ | x | 万 |
| -C | , | < | L | \ | l | | | ャ | シ | フ | ワ | ¢ | 円 |
| -D | - | = | M | ] | m | } | ュ | ス | ヘ | ン | Ⱡ | ÷ |
| -E | . | > | N | ^ | n | → | ョ | セ | ホ | ゛ | ñ | |
| -F | / | ? | O | _ | o | ← | ッ | ソ | マ | ゜ | ö | ■ |
このE0h~FFhに割り当てられている特殊な記号が何を表しているのか、思うところを記しておきます。
- 「g」「j」「p」「q」「y」はディセンダー付きデザインです。このディセンダー付き文字ですが、実は縦10ドットでデザインされています(下図赤点部)。このため縦8ドットのLCDでは下2ドット分が描画されず、切れた形になっています。「β」や「µ」も同様です。なおASCII値の7ビット目を1にした位置に配置されています。
- 「ä」「ñ」「ö」「ü」はアクセント付きの文字です。ラテン文字ではない何か。ASCII値の7ビット目を1にした位置に配置されています。
- 「¢」はセント、「Ⱡ」はポンドだと思います。
- 「˟」は何も想像がつかない記号です。「x(かける)」の上付きのように見えますが???


コメント