文字コード-ASCII

Posted: 2012年04月09日

ASCII(American Standard Code for Information Interchange)と言われてもピンとこない方もいるかもしれませんが
一般的な文字コードです。

C言語のcharはASCIIまたは、ASCIIと互換を持った文字コードの文字が使用されます。
このようにASCIIは古くから存在しており、現在も使用されています。

ASCIIコードは文字を7bitで表現するため、
記号、制御文字、アルファベット、数字のみ表現が可能です。

数値(10進) 数値(16進) 文字
48-57 30-39 0-9
65-90 41-5A A-Z
97-122 61-7A a-z

※ASCIIの文字コード表は、検索をすればより良いものが出てくると思いますので、ここでは載せません。

拡張ASCIIで8bit以上の文字が表現できるようになり
様々な文字を表現できるようになりました。

しかし拡張ASCIIは日本では
半角カタカナのみなど

アイウエオ カキクケコ サシスセソ

それぞれの地域によって7bit以降の割当たっている文字が異なるため
文字化けの原因になりました。

なぜ今のようにASCIIはすべての言語を取り込まなかったか

1963年にANSIが定めた体型であり、その頃は、Apple I(Appleが初めに発売したパソコン)も登場しない時代であり
参考に1968年に発売したPDP-10はメモリーが256Kワード(1152Kバイト)と少なく、
今のように気軽にUnicode(最大6byte)を使用できないため、必要最小限の文字のみの文字コードを作成したと思います。

もちろん、この頃から世界中の文字を表現できる文字コードを作成しようと考えていたとも思えませんが・・・

話は変わりまして、ASCII文字の大文字→小文字変換を実装してみると以下のようになります。

プログラムプログラム:

 char toLower(char ch) {
    return ch + 0x20;
 }

ただ0x20を足しているだけのため
大文字以外を引数に渡されると記号や制御文字になります。

ASCII以外の文字コードで同じ処理を行うと大文字を渡しても小文字に変換はされない場合があります。
実行するプログラムが使用する文字コードを気にして実装する必要があります。

カテゴリー: プログラム, 文字コード | タグ: , , | コメント無し »

コメント