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(かける)」の上付きのように見えますが???