ASCIIは文字コードの基本

目次

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-
-0NULDLESP0@P`p
-1SOHDC1!1AQaq
-2STXDC22BRbr
-3ETXDC3#3CScs
-4EOTDC4$4DTdt
-5ENQNAK%5EUeu
-6ACKSYN&6FVfv
-7BELETB7GWgw
-8BSCAN(8HXhx
-9HTEM)9IYiy
-ALFSUB*:JZjz
-BVTESC+;K[k{
-CFFFS,L\l|
-DCRGS=M]m}
-ESORS.N^n~
-FSIUS/?O_oDEL

制御文字

制御文字は表示するための文字や記号ではありません。モニターやプリンターなどの機器を制御するために用いられます。STXやETX、CRやLFはRS-232Cなどの通信電文でもよく用いられています。

スクロールできます
16進数略語語源意味
00NULNullヌル文字
01SOHStart of Headingヘッディング開始
02STXStart of Textテキスト開始
03ETXEnd of Textテキスト終了
04EOTEnd of Transmission伝送終了
05ENQEnquiry問い合わせ
06ACKAcknowledgement肯定応答
07BELBellベル
08BSBack Space後退
09HTHorizontal Tabulation水平タブ
0ALFLine Feed改行
0BVTVertical Tabulation垂直タブ
0CFFForm Feed書式送り
0DCRCarriage Return復帰
0ESOShift Outシフトアウト
0FSIShift Inシフトイン
10DLEData Link Escape伝送制御拡張
11DC1Device Control 1装置制御1、XON
12DC2Device Control 2装置制御2
13DC3Device Control 3装置制御3、XOFF
14DC4Device Control 4装置制御4
15NAKNegative Acknowledgement否定応答
16SYNSynchronous Idle同期信号
17ETBEnd of Transmission Block伝送ブロック終結
18CANCancel取消
19EMEnd of Medium媒体終端
1ASUBSubstitute置換
1BESCEscapeエスケープ
1CFSFile Separatorファイル分離標識
1DGSGroup Separatorグループ分離標識
1ERSRecord Separatorレコード分離標識
1FUSUnit Separatorユニット分離標識
7FDELDelete抹消

ASCIIの特徴

  1. 大文字のASCII値の5ビット目を1にすると、小文字になります。
    例:’A’ ⇒ 41h ⇒ 61h ⇒ ‘a’
  2. 数字の上位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!1AQaq  
-22BRbr  
-3#3CScs  
-4$4DTdt  
-5%5EUeu  
-6&6FVfv  
-77GWgw  
-8(8HXhx  
-9)9IYiy  
-A*:JZjz  
-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!1AQaqäq
-22BRbrβΘ
-3#3CScsε
-4$4DTdtµΩ
-5%5EUeuσü
-6&6FVfvρΣ
-77GWgwgπ
-8(8HXhx
-9)9IYiy-1y
-A*:JZjzj
-B+;K[k{x
-C,L\l|
-D=M]m}÷
-E.N^nñ 
-F/?O_oö

このE0h~FFhに割り当てられている特殊な記号が何を表しているのか、思うところを記しておきます。

  1. 「g」「j」「p」「q」「y」はディセンダー付きデザインです。このディセンダー付き文字ですが、実は縦10ドットでデザインされています(下図赤点部)。このため縦8ドットのLCDでは下2ドット分が描画されず、切れた形になっています。「β」や「µ」も同様です。なおASCII値の7ビット目を1にした位置に配置されています。
  2. 「ä」「ñ」「ö」「ü」はアクセント付きの文字です。ラテン文字ではない何か。ASCII値の7ビット目を1にした位置に配置されています。
  3. 「¢」はセント、「Ⱡ」はポンドだと思います。
  4. ˟」は何も想像がつかない記号です。「x(かける)」の上付きのように見えますが???
目次