文字コード超研究 8章
- 作者: 深沢千尋
- 出版社/メーカー: ラトルズ
- 発売日: 2011/07/19
- メディア: 単行本(ソフトカバー)
- 購入: 2人 クリック: 8回
- この商品を含むブログ (4件) を見る
前回の続き
8章 ASCII
ASCIIのあれこれ。0x00-0x1fの制御文字の詳細や、 紙テープでの情報の記録、改行コードの違い等。
改行コード
個人的にはCRとLFを両方使うMSスタイルが一番しっくり来るのですが、OSによって違いがあるということだけ覚えておけばOK。処理的には、先頭から1文字ずつ読んで行って0x0aがあったらそれで復改、0x0dでその次が0x0aなら2バイトで復改、0x0dでその次が0x0a以外なら0x0dのみで復改とするのがお約束でしょう。
制御文字と規格
制御文字が様々な規格でどのように定義されているか。
- ISO 6429 - 0x00がNUL, 0x01がSOH…のように、種類と名前が決められているが、実際の挙動は定義されていない。(0x0dや0x0a,0x09のようになんとなく決まっている物もあるが、挙動が明確に定義されているわけではない)
- ISO 2022 - 0x1bで始まるエスケープシーケンスによる文字コード表の指定方法と、0x0e(SO)/0x0f(SI)による切替が定義されている
- RFC 822 - 電子メールに関するRFC(の大元)。0x0d 0x0aが改行を表すということが定められている。
- RFC 2822 - RFC 822の改訂版。 電子メールで0x00を使用してはならないと定められている。
- RFC 2046 - MIMEに関するRFC。0x0cが改ページ、0x09が水平タプがデファクトスタンダードとなっていると明言されている。
- VT100 - DEC社のディスプレイ端末の名前。カーソル移動や画面クリア等のエスケープシーケンスの挙動の標準となっている。
ISO 646の違い
ASCIIとの違いは以下。西ヨーロッパ諸国もISO 646の各国版ではなく、ISO 8859-1が使われる事が多い。
- 0x00-0x1fの制御文字はISO 6429で定める
- 0x23は#(NUMBER SIGN)か£(POUND SIGN)のいずれかを各国の国情で入れ替えて使う
- 0x24は$(DOLLAR SIGN)か(CURRENCY SIGN)。
- 0x40,0x5b-0x5e,0x60,0x7b-0x7eは国情で入れ替えて使える
記号の呼び方
欧米とで呼び方に差があるものを列挙
- # - ナンバー、欧米ではパウンド
- ♯ - シャープ
- & - アンパーサンド
- ’ - シングルクォート
- () - 丸括弧、英語ではパレンセスィス(parenthesis)
- * - アスタリスク、欧米ではスター
- − - ハイフン、欧米ではダッシュ
- . - ピリオド、欧米ではドット
- <> - 小なり大なり、欧米でもレスザングレーターザン。アングルブラケットとも言う。
- @ - アット
- [] - ブラケット、スクエアブラケット
- \ - バックスラッシュ
- ^ - キャレット
- _ - アンダーライン、アンダースコア、アンダーバー
- ` - バッククォート
- {} - カーリブレース
- | - 縦バー、欧米ではバー
- ~ - チルダ、チルド、ティルドゥ
例によって最後のperlのコーディング例の部分はタイトルだけ確認して読み飛ばした。 7bitのASCIIひとつとっても知らないことがたくさん。特に記号の読み方は勉強になった。
次回へ続く