曖昧だがその性質上、省略表現が存在するので一応記述しておく。現位置の文字を削除する。126)32から126までの数には印字可能なアルファベットや数字,記号などの文字が定義されています。この表は次の短いPerlスクリプトで出力されました。中に半角カタカナなどの文字を割り当てています。このようなMSBを利用したコードを含む文書を通信でやり取りした場合、文字化けが起こりやすいという問題があります。E-mailユーザ・エージェントなどではMSBを利用しないコード体系であるISO-2022-JP(JISコード)への変換を自動的に行う場合があります。Interchange)は、複数のコンピュータの間で円滑な情報交換を行うために1963年にANSI(アメリカ工業規格協会)が定めた7bitベース文字セットの標準です。現在、多岐に渡る文字コードが存在していますが、そのほとんどはASCIIへの互換性が重視されており、ASCII文字だけはどのような文字コードを用いていても問題なく表示できるよう考慮されています。ASCIIはあらゆる文字コードの祖先である、といえます。倍数のデータを処理の基本単位とするよう設計されています。数値領域に制御文字や図形文字などを配置しました。領域があれば十分だったからです。一つ足りないこの“無視された1bit”は後に、コンピュータの文字コードの歴史に大きな波を起こすことになりました。ASCIIが定めた文字セットの表を次に示します。垂直方向に16進数1桁目を、水平方向に2桁目を表しているので、下に向かって順に数が増えるものと見てください。Roman」に指定しています。ASCII文字と異なってしまうからです。DEL(この表はこの短いPerlスクリプトで出力されました)背景をオレンジっぽい色で表したセルは、特殊な意味を持つコードで「制御文字(コントロール・コード)」と呼ばれます。これらは形としての文字表現を持たないので、慣例的に代替の略号で表されています。34つもありますが、次に列挙するもの以外は現在ではほとんど使われることはありません。C言語では文字列の終端として扱われる。テキストの整形に使われる。カーソルを次行へ送る。カーソルを行頭へ送る。用途は一定ではなく、処理系により様々である。これは厳密には制御文字とも図形文字とも区別される。用途不明なコントロール・コードが多数ありますが、これらは昔『テレタイプ』と呼ばれる現代のコンピュータの前身とも言える装置が情報通信に用いられていた時代の名残だと言われています。テレタイプの表示装置は現代のCRTや液晶のようなものではなく、プリンタそのものだったらしいので、このようなコントロール・コードを用いて表示やその他の制御を行っていたのでしょう。削除)だけが他のコントロール・コードと離れて一つだけ最後尾にあるのもそのためです。テレタイプは情報の記録にもやはり紙に穴を空けることによって行っていたのですが、間違えてタイプしてしまっても一度空けてしまった穴は塞ぐことが出来ないので、7Fで穴続きにすることにより「削除」の意味を表していたそうです。テレタイプに興味のある方は次のサイトを見てみると良いかもしれません。写真を交えたテレタイプに関する記事があります。ローマ文字のことを指しています。含んだ文字集合を採用していることにあります。0201-ローマ文字集合はASCII文字集合とほぼ同様の文字集合を継承しているので、“ASCII文字”という言い方が間違いという訳でもありません。円記号“\”に置換えられている、という違いだけは意識してください。ISO-646名前の通り、ASCIIはアメリカ国内向けに規定されたもので、その諸外国(ヨーロッパ諸国など)にとっては充分に必要な文字を満たしているとは言えませんでした。ISO-646は、この問題に対処するために1973年にISOが規格したもので、ASCIIの図形文字の内12箇所の文字を各国が要する文字と入れ替え可能とし、「自国版ISO-646」として利用することを許可したものです。国際参照版)」として同時に規定されています。入れ替え可能とされた文字とは、具体的にはIRVの内、次の12文字です。~ヨーロッパ諸国はこれに応じ、各国が自国版を規格したということですが、我々日本人にはさして興味のあることでもありません。いう8bitベースの規格が用いられている)。“日本版”が存在するということです。話しは変わりますが、ISO-646が規格化された同じ年に「ISO-2022」という複数の文字集合を切り替えて用いるための技術標準が登場しました。独立した文字集合が諸国により乱立し、複数存在することになってしまったISO-646を、整合性を保ちながら表現するために必要として生まれたのかもしれません。ISO-2022では従来の7bitをベースにした文字集合に関する内容だけでなく、8bitをベースにした文字集合に関する内容も合わせて規格されました。ISO-8859ISO-646は、ASCIIの7bitベースの文字集合という性格を保持したまま、たった12文字の入れ替えを許容するものでしたが、ISO-8859は、8bitに拡張された領域(1bit増えるとその表現領域は倍になる)に各国々の固有文字を割り当てて良い、という趣旨のもとに規格化されました。この規格の実装は諸国により多数存在しますが、中でも1987年に発行された「ISO-8859-1(通称:Latin-1)」はヨーロッパ諸国の主たる文字の多くが収録されており、共通して利用できる国が多いことから一番ポピュラーなISO-8859として位置付けされています。ISO-8859-1は、HTMLの規格においても標準の文字集合とされているほか、日本においても欧州の文字を表す文字集合として標準の扱いになっています。以降から始まっています。コントロール・コードが配置される)。適合するよう定義されていたのです。2箇所の文字を、それぞれ“円記号”と“オーバーライン記号”に置換えたもので、1976年に発行されました。0201ローマ文字集合(又は、ISO-646ローマ文字集合。“ローマ”の代わりに“ラテン”ということもある)」と呼ばれます。この規格はそれだけに留まらず、国内のニーズに応えてカタカナ文字集合をも規定しています。0201カタカナ文字集合(又は、ISO-646カタカナ文字集合)」と呼ばれます。カタカナ文字集合の配置体系は、8bitに拡張された領域に割り当てるタイプと、7bitの領域に割り当てるタイプとの二通りあります。8bitタイプを用いることを標準とすればこのような面倒な切り替え処理は不要なところをわざわざ二通りの方法を定めたのは、8bitに拡張された文字集合に対応していないISO-646に対し互換性を維持する体制をとった為です。8bitベースの文字集合でもあるのです。8bitベースの文字集合の表を示します。頻繁に参照される重要な文字集合です。国内版として置換えられた文字です。チルダがオーバーライン記号に置換えられたのはあまり有名ではありません。確かに置換えて規定されたはずなのですが、ソフトウェア産業界にはあまり受け入れられなかったようで、実際、ソフトウェア上では置換えされているケースは少ないようなのです(上の表でもチルダのままで表示されていると思います)。それに対し、ハードウェア産業界では受け入れられたようで、実際、キーボード右上のひらがなの「へ」がこの文字に対応するのですが、オーバーライン文字が刻印されている機種が多いはずです。改訂で、“0x7Eに対応する文字はチルダでもオーバーラインでも構わない”との方針が述べられたということで、近年生産されたキーボードは既にチルダの文字が刻印されるようになっていることでしょう。文字コードに関する話題としてよく挙がる「Windowsのディレクトリ区切り記号はなぜ円記号“\”なのか」ですが、この理由には少々回りくどい歴史的な経緯が絡んでいます。過去にさかのぼる順番でリスト形式による説明をします。準拠した文字集合が利用されるためにバックスラッシュに相当する文字コードが円記号で表示されてしまう。Windowsの前身であるMS-DOSの時代からディレクトリ区切り記号はバックスラッシュであったために、Windowsもそれを踏襲した。MS-DOSはUNIXを見習い、ディレクトリ区切り記号にスラッシュ“/”を採用しようとしたが、スラッシュは既にコマンドの引数を示す記号として使われていたためにそれが出来ず、代わりによく似た記号であるバックスラッシュを採用した。領域が未定義になっていることに気付くと思います。この未定義領域に目を付け(笑)ました。文字集合をエスケープ・シーケンス等を用いずに混在させる仕組みを実現させています。1978年に制定された2バイト・ベースの符号化文字集合です。数)の文字を収録しています。俗に「JIS漢字」と呼ばれますが、漢字のみに焦点をおいたこの呼び名は誤解されやすいものです。制定以来、1983年、1990年、1997年というように現在(2002.06.10)まで三回の改正が行われていますが、ここでは特に重要な1983年の改正にのみ触れています。「旧JIS漢字」,「新JIS漢字」という呼ばれ方をご存知でしょうか。1983年の改正時に、漢字の「旧字体」,「新字体」の相違による字形の違いを意識した大規模な改変が行われました。採用したプリンタなどに出力すると、実際に印刷される文字が異なってしまう、というような問題が発生し、大きな混乱を起こしました。「新JIS漢字」と俗称し、区別されるようになったのです。7bitをベースとした文字集合との共存性を重視し、両バイトともMSB(最上位ビット)は利用されず、7bitをベースとして表現されることになりました(*)。領域を確保し、そこに各種の文字を配置しています。よる1バイト文字と2バイト文字の扱いのコンセプトのイメージを以下に示します。これは、Shift-JISのコンセプト・イメージと見比べると、その違いがよく分かります。ように特有の数値を持つコードで1バイト文字と、2バイト文字の1バイト目とを見分けられないのでは全て1バイト文字だと判断してしまわないでしょうか。用いられるエスケープシーケンスの表を示します。単なる符号化文字集合ではなく文字エンコーディング方式の性格を併せ持つ文字集合なのかもしれません。単なる符号化文字集合として扱われています。定義されていたローマ字やカタカナなどが改めて2バイト文字として定義されています。2バイトのローマ字やカタカナの文字が混在することになりました。文字を“全角”などと俗称されたことが発端です。正式名称からも分かる通り、本来は“情報交換用の文字集合”です。この為に、通信媒体上での情報伝達のようなシーケンシャル・アクセス(先頭から順々に読み込むということ)を主とした利用の観点においては問題はないのですが、ソフトウェアの内部処理のようなランダム・アクセス(読み込む位置や順番が決まってないこと)を主とした利用の観点から見ると、このようなある文字の判断が、そのものの文字コードのみならず前方のエスケープ・シーケンスの出現に依存するような方式は“不便で不向き”としか言えません。採用するようになりました。次に列挙する項目は、その存在は確認していたものの、諸々の事情で詳しい検証まで至ることが出来なかった符号化文字集合の規格らです。機会があれば検証に踏み込むかもしれません。OSなどソフトウェアの内部処理用の文字エンコーディング方式として開発されました。ようなテキストにエスケープ・シーケンスを挟んで複数の文字集合を切り替えて使用するような方式に対し、“もっと単純に扱え、ランダム・アクセスが簡単に出来る方法はないか”という要望により生まれたものです。文字集合のすべての文字を含むことが出来ます。採用することによりソフトウェアの開発は飛躍的に楽になったと言われます。より制定された公的な規格ではありません。そもそも“Shift-JIS”という呼び名すら通称であり、正式名称ではありません。ベースとした規格を中心に発展してきました。ベースとした内容も含む文字集合の規格が生まれました。対し後方互換を保って設計されているのです。公的機関では旧来への互換性を重視し、MSB(8bit目)を利用する設計方針に対しては否定的だったのです。その全ての仕組みの基礎としていることにあります。改訂時に“付属書”という扱いで公認された、という話しです。文字集合だけでいいからエスケープ・シーケンスのような余分な情報を付加することなく、文字コードの値を解析するだけで両者の文字集合の区別を可能にすること”にあります。名のゆえん)一連のルール”にあります。文字集合を含む“文字集合”である、のように認識されることがあります。実装するため、事態はより複雑に把握しにくくなってしまっています。(とはいえ、これは自然な流れであり仕方ないことでもあります。文字集合を複合利用するためのアイディア”は意外に単純なものです。2バイト文字の1バイト目として機能させる、という解を見出しました。コード・ポイントをシフトさせる必要性はこのような理由で生じたのです。アイディアは単純なものでしたが、それを可能にするために発生した「コード・ポイントのシフト作業」は、文字コードの整合性を保ちつつコード・ポイントのシフトを行うための変換公式が必要になり、プログラミングの知識を要される少々難解なものです。この文書ではそれについての詳細には触れていません(*)。範囲を割り当てています。範囲を避けたことに理由があります。“円記号”)を除外していないことは後に多くの人を悩ますことになりました。多めにとられています。異なり文字集合の体系が分断されてコード領域に収められているという理由で多少回りくどく計算されます。新たな領域が生まれることになります。この領域にソフトウェア・ベンダが外字を割り当てることを規制する者はいません。利用できない文字が存在することになってしまいました。興味が湧けばその辺のところも追求したいところですが、私の目的は当初から「文字コードの全体像を把握する」ことに集約しているため、やや局所的な知識という感のあるこの変換公式についてはそれほど興味が湧きませんでした。私は全てを網羅しようと考えている訳ではありません。プログラムのソースを参考にするとよいかもしれません。よる1バイト文字と2バイト文字の扱いのコンセプトのイメージを以下に示します。コンセプト・イメージと見比べると、その違いがよく分かります。コンセプト・イメージ】[データ量はテキスト列で判断できる?]例として、“珈琲はcoffee”という文字列があるとします。1バイト文字×6)と見ただけで判断することができます。この“特殊利点”はあまりに定着化し過ぎてしまい、特殊な事情のはずが常識の事情になってしまっているという面白い現象(?)が起こっています。私自信、「エスケープ・シーケンス」などという存在を知ったときには随分と驚いたものです。1990年に制定しましたが、抗議があったにも関わらず、この規格はなかなか一般に浸透しませんでした。この補助漢字の文字集合を収録するだけの空き領域がなかったことが挙げられます。多くの領域を確保している、と前述しましたが、それでも補助漢字を収めるだけのスペースはなかったのです。救いの手を差し伸べられているようです。日本語化作業の過程で開発した、と記述されています。誕生した正確な年は不明です。公的な規格とは違い、はっきりと明文化された発表などはなかったのでしょう。限られた範囲の私的な規格だったのが「便利」という一言に尽きる理由で自然に広まって行ったのだと推測されます。ベースとしたテキスト・データ列の中で複数の文字集合を混在利用するための枠組みを提供する規格です。文字エンコーディング方式の一種といえますが、この規格の提唱する仕組みをそのまま実装し、運用されるケースはほとんど見られません。少々大げさである程に事細かにその内容を取り決めており、この規格に完全準拠するのは困難で、またその必要もない、という理由からです。複数の文字集合を利用するための有用なガイドラインとして幾つかの他の文字エンコーディング方式に部分的に参照される形で活用されています。情報交換用符号の拡張法」がこれに対応する規格として発行されています。提唱するのは複数の文字集合をテキスト・データ列の中で混在利用するための一連のルール/概念です。ベースとしたものの二通り提唱されていますが、基本的な構想においては両者に差異はありません。基本的な構想とは次のようなものです。微妙な差異をカプセル化するため、抽象的な解説に留めています。7/8bitの文字コード領域を「制御文字の領域」及び「図形文字の領域」に明確に区分割する。「呼び出す」ことによって利用する。「指示する」ことによって収容する。インユース・テーブルとは別の空間に置かれる文字集合の“待機”の為の空間です。図形文字の領域に現在呼び出されている文字集合収容空間は、図形文字の領域に利用されていることになります。これらの領域,空間には幾つかの具体的な称号が与えられており、後続する段落にて説明します。説明ではよく見られる表現で、キーワードのようなものです。間に若干の差異があります。コンセプト・イメージ図を下記に示します。正確な構想を表している訳ではありませんが、解説文に照らし合わせて参考にすると理解の助けになると思います。呼ぶことですが、自然な解釈をすると“図形文字の領域が参照する文字集合収容空間を切り替える”と言うことも出来ます。図形文字の領域に文字集合収容空間にある文字集合を“移動”するのではなく、図形文字の領域から“参照”する、ということです。このため、既に参照している文字集合収容空間に指示を行い別の文字集合を収容した場合、その文字集合収容空間を改めて呼び出し直す必要は無い、ということになります。呼び出しには、「ロッキング・シフト」と「シングル・シフト」という動作の異なる二種類の方式があります。この違いは実に単純です。ロッキング・シフトは、次の呼び出しが起こるまで指定された文字集合収容空間を参照し続けます。それに対し、シングル・シフトは一文字分(文字集合によりバイト数は異なる)だけ指定された文字集合収容空間を参照し、その後は直前の文字集合収容空間を参照し直します。このような、両者のシフト操作の使い分けは、この規格を実装する文字エンコーディングのコンセプトにより各文字集合の使用頻度に開きが起こることを考慮してです。構想概念では、それぞれの領域,空間に以下のような称号が与えられています。両方収めることが出来ないので交換利用することになっています。96単位系文字集合を参照することは推奨されません。呼び出すことで利用します。以下のようなエスケープ・シーケンスを用います。限る、という制約があります。名称は同一でありながら文字コードが異なること、があります。構想概念では、それぞれの領域,空間に以下のような称号が与えられています。扱う為の拡張が加えられています。呼び出すことは出来ない、ことが挙げられます。G3)に、ある特定の文字集合を収容するための命令です。とも差異はありませんが、幾つかの例外的な決まりについては注意が必要です。指示のエスケープ・シーケンスの連なりを抽象的に表現すると次のようになります。【】で囲まれる表名中の記号を指定している個所については、後記する表を参照してください。ASCII文字で表現しますが、本来はその文字コードが正しいところです。Aエスケープ・シーケンスの例を幾つか挙げましょう。文字集合基本単位の対象別記号表】の内の一つ」が省略されている、ということが挙げられます。限定されていた、ということらしいです。対応しそうに見えますが、これは使用されないことになっています。置き換えられてしまうと何かと困るからでしょう。)という組織で一貫整理されており、重複することのないよう登録制になっています。どれかに適合するものでなければなりません。全てこの条件に適うよう考慮され、設計されています。当然ながら条件に適っています。インターネット上で日本語をやり取りするための7bitベース文字エンコーディング方式を定めた規格であり、俗に“JISコード”と呼ばれます。コンセプトに当てはめて考えることができます。呼ばれる実験用ネットワークにおいて、とのことです。部分は、インターネット上のサービスである、メール及びニュースの総称だと考えてほぼ間違いはありません。