文字コード 文字コードの概要

文字コード

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/04/17 07:52 UTC 版)

(※)code コードという語の基本的な意味は法規規則である。そういう用語なので、数字と文字・記号の対応に関する規則を定めた時にもそれを「コード」と呼ぶようになった。[注釈 2]

概説

文字コードは、文字や記号やそれに類するものを、通信やコンピュータで扱うために、各文字や記号などに対して番号を与えた対応規則の体系である。通常、通し番号を与え、文字と番号の対応表が作成される。どの文字コードを使うか決まっている状況では、ある数(番号)が与えられるとそれに対応する文字や記号を特定することができる。

歴史

1870年代にはフランスの電信技術者のエミール・ボドーが、5ビットと文字・記号類を対応させるコードを発明し、1876年に、そのコードを用いる電信装置の特許をフランスで取得した(この装置に使われている5ビットのコードがBaudot Code(ボドー・コード)として知られるようになった)。

1963年には、アメリカの情報通信用の文字コードとして7ビットのASCII(アスキー、英: American Standard Code for Information Interchange の略)がアメリカ規格協会(ASA)で制定された。1964年にはIBM社がSystem/360とともにEBCDICという文字コード、4ビットのBCDを8ビットに拡張した文字コードを発表した。

世界のさまざまな言語の表記にはさまざまな文字が使われているので、英語用のアルファベットや記号しか使えないようでは世界では全然使い物にならないので、各言語用にそれぞれ文字コードが作り出された。 [注釈 3]。 ASCIIは英語圏以外では基本的な通信にすら使えず、不便すぎるので、各国それぞれで独自にASCIIに代わる文字コードが生み出される事態を生んだ。たとえばブラジルではASCIIの代わりに、ブラジル・ポルトガル語で通信するのに必要なアクセント記号つきのアルファベットも含む文字コードで、BraSCIIというASCIIとは異なる文字コードが生み出された。またASCIIの対応表の後ろに独自に別の対応表を足すということが行われた国もある。

さらにひとつ言語用にもコンピュータメーカー(コンピュータベンダー)ごとに別々の文字コードが生み出され、さらにひとつのメーカーの中でも、その時々の都合で文字コードを開発することが行われ文字コードが増えていったので、文字コードが多数乱立することになり、代表的な文字コードを数えるだけでも100以上になった(細かく数えると数百以上になった)。

ひとつの言語についても複数の文字コードが乱立し、ひとつの国の中でもあるマシン用の文字コードを別のマシンで使おうとすると文字が正常に表示されず《文字化け》が発生する事態になった。また製造された国の言語ならばかろうじて複数の文字コードで表示できるというマシンが開発されることは一部ではあったが、たいていは他の言語圏の文字は全く使えないというようなことが一般的になった。

世の中では自分が使用している言語以外には無関心で無頓着な人は多いので、ある言語圏の技術者により開発されたマシンは、当該地域の言語以外の言語のことは全く配慮しておらず全く表示できないということが頻繁に起きた。

だが必要性という観点からは、国境をまたいだビジネス上のやりとりであれ、学術上の記述であれ、複数の言語をひとつの通信やひとつの文書に織り込まなければならないことは世界では多く、それを求める要望は強いので、ひとつのマシンで複数の言語の文字コードを表示できるようにする技術的な努力は続けられたが、2言語間の、複数の文字コードと複数の文字コードの対応関係だけでも複雑で、それが3言語、4言語...となると指数関数的に複雑さが増し、OSのレベル、プログラミング言語のレベル、アプリケーションソフトのレベルなどでそれぞれ対応しかつ統一的な対応をしなければ整合性がとれないのに、実際にはそれぞれのレベルでチグハグな技術的対応を採用したり、あるレベルでは多言語対応を拒否して無視したりすることが起き、多言語の文字コードへの技術的な対応は非常に困難であった。おまけにある言語の文字コードについての説明はその言語で書かれる(基本的に英語では書かれない、その言語で書かれる。)ので、ついには世界全体の文字コードの状態を全て把握することは誰にもできないほどの大混乱状態になってしまい[注釈 4]、世界の多数の言語の文字コードに対応するコンピュータは開発することが非常に困難になってしまった。その結果、コンピュータで複数の言語を扱おうとすると《文字化け》が頻発した。

他にも多様な文字コードの存在は文字コードの互換性問題を引き起こした。文字コードの互換性問題とは、ある文字コードで記録されたデータを別の文字コードに変換しようとするとき、一方で定義されている文字がもう一方では定義されていない(あるいは用途によって2種類の文字に分けられている)という問題である。日本語では、これは特殊な漢字(名字や団体名に使われる漢字)などが入ったデータベースを扱うときなどに問題となる。また文字コードの変換にかかるコストはばかにならないことが多い。

そのような混乱(大混乱)をできるだけ解消するために、世界中の様々な言語の膨大な数の文字に全て(できうる限り全て)に通し番号を割り当てひとつのコード体系で使用できるようにすることが構想されるようになり、Unicode(ユニコード)が実現した。 Unicodeが普及し、オペレーティングシステムJavaなどのプログラミング言語で採用されることが増え、Unicodeに収録される文字の種類も増えるにつれ、コンピュータ上の《文字化け》が減ってきており各言語の文字を正常に表現することができるようになりつつある。

なおMicrosoft WindowsmacOSなどの最近のOSは、表面上はUnicode以外の文字コードを使っていても内部処理上はUnicodeに変換して処理しているものが多い。この場合、波ダッシュのように、字によってはUnicodeと各文字コードの変換テーブルがOSによって異なるなどの問題が生じる場合がある。

符号化文字集合、文字符号化方式

文字コードを、以下の2段階に区別する場合がある。

符号化文字集合CCS
文字と一意に振られた番号のペアの集合。
文字符号化方式CES
文字に振られた番号をバイト表現に変換する方法。

「符号化文字集合」や「文字符号化方式」といった用語は標準化団体によっても定義が異なるため、「これは符号化文字集合だ、いや文字符号化方式だ」といった議論は意味をなさないことがある。元来、文字コードは文字の集合の各文字に直接一意なバイト表現を割り当てただけのシンプルなものだったが、JIS X 0208というひとつの文字集合に対してISO-2022-JPEUC-JPShift_JISなど複数の符号化方式が存在するようになってきたり、逆に複数の文字集合を切り替えて使うISO-2022-JPEUC-JPといった符号化方式が用いられるようになってきたため、「符号化文字集合」と「文字符号化方式」とを区別するようになったと考えられる。

両者の区分はIETFでは用いられる一方、ISO/IECJISでは「文字符号化方式」を「符号化文字集合の構造」あるいは「文字符号の構造及び拡張法」として規定している。


注釈

  1. ^ 文字コードは通信用語辞典にも掲載されており、コンピュータ用語辞典にも掲載されている。通信用語でもあり、コンピュータ用語でもある。
  2. ^ 英語や西ヨーロッパ諸語では、今でも、日常的にも、「code」の1番目や2番めの意味は法規体系(規則体系)なので、英語やヨーロッパ諸語の母語話者が「code」という語を見る際は、常に規則体系という概念が、意識レベルであれ無意識レベルであれ想起されている。欧米の人々はそのような意識を土台として、文字・記号と番号の対応関係を定めた規則やそれを表現した対応表も見ている。
  3. ^ たとえばASCIIはアメリカ人が開発したのでアメリカ英語のことしか考えておらず、英語以外の言語への配慮が全く欠如している。たとえば西ヨーロッパ諸国の人々が母国語を表記するのに当然必要なアクセント文字群は全然含まれておらず、スペイン語ポルトガル語フランス語ドイツ語などは全然うまく表記できない。たとえば基本語彙を挙げると、ポルトガル語の基本語彙のひとつ「明日」は「amanhã アマニャン」というが、ASCIIにはãという文字が含まれていないので、「じゃあ、また明日ね」というポルトガル人が毎日のように交わす挨拶すら表記できない。ポルトガル語で腕は「braço ブラッソ」だがASCIIには「ç」(cの下にヒゲがついたような文字)が含まれないので、ポルトガル人はASCIIでは「腕」という基本的な語すら書くことができない。(各言語のどの文字や基本語彙が書けないか、いちいち説明していると長文になりすぎるので省略するが)ともかく、同様にスペイン語、フランス語、ドイツ語などの基本的な語彙すらASCIIでは書くことができない。ともかくオリジナルのASCIIは、基本的に英語でしか使い物にならない代物である。
  4. ^ 2〜3程度の言語を理解できる人、つまりバイリンガルやトリリンガル程度なら世の中には多数いるが、それ以上の数の言語を理解できる人なると数が減る。かなりの多言語が使えることを誇る人でも、使えるのはせいぜい7〜8言語程度である。それ以上の数になると、ひとつの言語あたりの使用時間・経験時間・学習時間が減ってしまい、ひとつひとつの言語の理解力がかなり低くなる。文字コードの理解に話を戻すと、世界の数百、数千の言語を理解できる人はおらず、数百の言語で書かれた各国語の文字コードに関するドキュメントや説明文を自力で読んで、俯瞰的かつ細かく理解できる人など、この世にいない。

出典

  1. ^ UTR#17: Unicode Character Encoding Model” (English). The Unicode Consortium (2008年11月11日). 2019年5月21日閲覧。
  2. ^ The Unicode Standard Version 12.0” (PDF) (English). The Unicode Consortium. p. 90 (2019年5月7日). 2019年5月23日閲覧。 “An abstract character does not necessarily correspond to what a user thinks of as a “character” and should not be confused with a grapheme.”
  3. ^ The Unicode Standard Version 12.0” (PDF) (English). The Unicode Consortium. p. 29 (2019年5月7日). 2019年5月21日閲覧。 “The range of integers used to code the abstract characters is called the codespace. A particular integer in this set is called a code point. When an abstract character is mapped orassigned to a particular code point in the codespace, it is then referred to as an encodedcharacter.”
  4. ^ The Unicode Standard Version 12.0” (PDF) (English). The Unicode Consortium. p. 29 (2019年5月7日). 2019年5月21日閲覧。 “an abstract character may be represented by a sequence of two (or more) other encoded characters.”
  5. ^ The Unicode Standard Version 12.0” (PDF) (English). The Unicode Consortium. p. 30 (2019年5月7日). 2019年5月21日閲覧。 “Not all assigned code points represent abstract character.”
  6. ^ http://docs.oracle.com/cd/E19455-01/806-5582/6jej6u9sp/index.html
  7. ^ Freed and Postel. 参考文献, ‘1.3. Charset’, p.1.
  8. ^ UTR#17: Unicode Character Encoding Model” (English). The Unicode Consortium (2008年11月11日). 2019年7月20日閲覧。 “a mapping from sequences of members of an abstract character repertoire to serialized sequences of bytes bridging all four levels in a single operation”
  9. ^ 文学作品に現れたJIS X 0208にない文字(1999.2-3青空文庫
  10. ^ 【事例編】JTB、基幹系プラットフォームを刷新 - 進化するITプラットフォーム Part8(2009.6 IT Leaders編集部、インプレス (企業))


「文字コード」の続きの解説一覧



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「文字コード」の関連用語

文字コードのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



文字コードのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの文字コード (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2024 GRAS Group, Inc.RSS