ISO/IEC 8859

ウィキペディアから、無料の百科事典

ISO 8859(より正式にはISO/IEC 8859)はコンピュータでの利用を目的とした8ビット文字コードの標準である。ISOとIECが合同で定めた。この標準は複数の部(英: part)に分かれており、それぞれがISO/IEC 8859-1、ISO/IEC 8859-2などのように番号付きで出版されている。それぞれの部自体を、非公式に標準として参照することがある。2009年現在、15の部(破棄されたISO/IEC 8859-12標準を除く)が存在する。

概要

ASCIIの印字可能文字のビットパターンは95個ある。これは現代英語の情報交換には十分だが、ラテン文字を使う他の言語のほとんどでは、ASCIIに含まれない文字をさらに追加する必要がある。たとえば「ß」(ドイツ語)、「ñ」(スペイン語)、「å」(スウェーデン語と他の北ゲルマン語群)などである。ISO 8859では、8ビットバイトの第8ビットを使ってさらに128文字分の領域を確保することで、この問題を改善することを目指している(第8ビットはかつて、データ伝送手順の情報に使われる以外は、未使用のままだった)。しかし、単一の8ビット文字コードで収容できる以上の文字が必要になったため、ラテン文字を含めるのに必要な最低10個をはじめ、複数のマッピングが開発された。

ISO 8859-n符号化は印字可能文字のみを含み、未割り当ての符号位置にマップされる制御文字と組み合わせて使うように設計されていた。この目的のためにIANAが登録した一連の文字コードは、ISO 646からC0制御集合(符号位置0から31にマップされる制御文字)を、ISO 6429からC1制御集合(符号位置127から159にマップされる制御文字)を追加し、その結果完全な8ビット文字マッピングのほとんど(ないしはすべて)に文字を割り当てている。これらの集合はその推奨MIME名(推奨MIME名が規定されていない場合その正式名称)としてISO-8859-nという名前を持つ。多くの人が、用語ISO 8859-nとISO-8859-nを同等な意味を持つものとして用いる。ISO 8859-11はTIS-620とほとんど同じであるためか、このようなキャラクタセット名を割り当てられていない。

文字

ISO 8859標準はタイポグラフィのためではなく、信頼性の高い情報交換のために設計されている。この標準は高品質のタイポグラフィに必要な文字(たとえば必須でない合字、左右の区別のある引用符、ダッシュなど)を省略している。その結果、高品質の電子組版のためのシステムでは、しばしばASCIIとISO 8859標準と相互交換のできないあるいは独自の拡張をほどこして使用したり、Unicodeを代わりに使ったりしている。

おおざっぱに言って、ある文字や記号がすでに広く使われているデータ処理文字集合の一部でなく、なんらかの言語用のタイプライタの鍵盤でも通常は提供されていない場合、その文字や記号は採用されていない。それゆえいくつかのヨーロッパ言語で使われている向きのある二重引用符「«」と「»」は含まれたが、英語などいくつかの言語で使われる向きのある二重引用符「“」と「”」は含まれなかった。フランス語の「œ」と「Œ」は「oe」、「OE」とタイプできるため採用されなかった。「Ÿ」はテキストがすべて大文字でも必要とされるが、省略された。しかしながら、これらの文字は最近のISO 8859-15で新しいユーロ記号 € の導入に際して含められることになった。同様にオランダ語の 'ij' と 'IJ' の文字も収録されなかった。オランダ語話者は、代わりにこれらを2文字でタイプしてきたからである。ルーマニア語の「Ș/ș」と「Ț/ț」(コンマアクセント付きの文字)も最初は収録されなかった。これらの文字は当初「Ş/ş」と「Ţ/ţ」(セディーユ付きの文字)に統合されていたためである。ユニコードコンソーシアムは、下付きコンマの字形はセディーユの字形のグリフ変種であると考えてきた。しかしながら、後にUnicode標準とISO 8859-16でも、下付きコンマを区別して追加した。

ISO 8859エンコーディングのほとんどで、各種のヨーロッパ言語で必要なダイアクリティカルマーク付き文字を提供している。そうでないものは非ラテン文字を提供しているもの(ギリシア文字、キリル文字、ヘブライ文字、アラビア文字、タイ文字)である。エンコーディングのほとんどは前進文字のみを含むが、ヘブライ文字とアラビア文字のものは結合文字をも含んでいる。しかしながら、この標準は東アジア言語(CJK)用の用字系は何も提供していない。それらの漢字系書記体系には数千もの符号位置が必要だからである。ベトナム語はラテン文字ベースの文字を使うが、96個の位置には(結合ダイアクリティカルマークを使わない限り)やはりおさまらない。日本語の音節文字(ひらがなとカタカナ、仮名を参照)のそれぞれは収まるが、ISO 8859では符号化されていない。また世界の他の表音文字も符号化されていない。

ISO 8859の部

ISO 8859は以下の部に分かれている:

第1部 ラテン1
西ヨーロッパ
おそらくもっとも広く使われているISO 8859の部であり、ほとんどの西ヨーロッパ言語をカバーする。デンマーク語、オランダ語(一部[1])、英語、フェロー語、フィンランド語(一部[2])、フランス語(一部[2])、ドイツ語、アイスランド語、アイルランド語、イタリア語、ノルウェー語、ポルトガル語、レト・ロマンス語群、スコットランド・ゲール語、スペイン語、スウェーデン語である。世界の他地域の言語もカバーしている。東ヨーロッパのアルバニア語、東南アジアのインドネシア語、そのほかアフリカの言語アフリカーンス語とスワヒリ語である。ユーロ記号と大文字の Ÿ が欠けていたが、改訂版のISO 8859-15には追加されている。IANAが承認したこれに対応するキャラクタセットISO-8859-1は、レガシーなHTML文書とHTTP応答のようなMIMEメッセージを経由して伝送される文書において、文書のメディアタイプが "text" ("text/html"など) であるときのデフォルトのエンコーディングである。
第2部 ラテン2
中央ヨーロッパ
ラテン文字を使う中央ヨーロッパおよび東ヨーロッパの言語に対応している。次の言語が含まれる。ボスニア語、ポーランド語、クロアチア語、チェコ語、スロバキア語、スロベニア語、ハンガリー語。ユーロ記号が欠けていたが、ISO 8859-16版に含まれることになった。
第3部 ラテン3
南ヨーロッパ
トルコ語、マルタ語、エスペラント。トルコ語に関してはISO 8859-9が、エスペラントに関してはUnicodeが取って替わった。
第4部 ラテン4
北ヨーロッパ
エストニア語、ラトビア語、リトアニア語、グリーンランド語、サーミ語。
第5部 ラテン/キリル キリル文字を使うほとんどのスラブ言語をカバーする。以下の言語が含まれる。ベラルーシ語、ブルガリア語、マケドニア語、ロシア語、セルビア語、ウクライナ語(一部[3])。
第6部 ラテン/アラビア アラビア語で広く使われる文字のほとんどをカバーする。アラビア文字を使う他の言語には対応していない。表示には双方向テキストと筆記体文字の接合の処理が必要。
第7部 ラテン/ギリシア 現代ギリシア語(モノトニック・ギリシア語(en)) をカバーする。古代ギリシア語でもアクセントを使わないかモノトニック表記法で表記する場合には使えるが、ポリトニック・ギリシア語(en)で使用するダイアクリティカルマークが欠けている。Unicodeではこれらの欠けている文字を導入している。
第8部 ラテン/ヘブライ イスラエルで使われている現代ヘブライ文字をカバーする。現実には以下の2つの異なるエンコーディングが存在する。論理順序 (表示に双方向テキスト処理が必要) と視覚 (left-to-right) 順序(事実上、双方向テキスト処理と改行処理を行った後のもの)。
第9部 ラテン5
トルコ語
多くの部分はISO 8859-1と同じだが、めったに使わないアイスランド語の文字をトルコ語のものに置き換えている。クルド語にも使える。
第10部 ラテン6
北ゲルマン語群
ラテン4を再配列したもの。北ゲルマン語群でより役に立つと考えられている。バルト語派はラテン4 を使うことのほうが多い。
第11部 ラテン/タイ タイ語に必要なグリフのほとんどを含む。TIS-620と同じ。
存在しない
第12部
ラテン/デーヴァナーガリー デーヴァナーガリー用に8859の部を作成する作業は、1997年に公式に破棄された。ISCIIとUnicode/ISO/IEC 10646がデーヴァナーガリーをカバーする。
第13部 ラテン7
バルト語
バルト語派で使われ、ラテン4とラテン6には含まれていないいくつかの文字を追加したもの。
第14部 ラテン8
ケルト語
ゲール語やブルトン語などのケルト語派をカバーする。
第15部 ラテン9 8859-1の改訂。いくつかのほとんど使われない記号を取り除き、ユーロ記号 € や文字 Š, š, Ž, ž, Œ, œ, Ÿで置き換えたことにより、フランス語、フィンランド語およびエストニア語を完全にカバーした。
第16部 ラテン10
南東ヨーロッパ
アルバニア語、クロアチア語、ハンガリー語、イタリア語、ポーランド語、ルーマニア語、スロベニア語で使うことを意図しているが、フィンランド語、フランス語、ドイツ語、アイルランド・ゲール語 (新正書法) でも使える。文字よりも記号に焦点を当てている。国際通貨記号がユーロ記号で置き換えられている。
  1. ↑ 通常IJで表されるIJ/ij(文字IJ)だけは欠けている。
  2. 1 2 足りない文字はISO 8859-15に含まれる。
  3. ↑ 1991年ウクライナ語に再導入された Ґ/ґ 文字が欠けている。

ISO 8859の各部はしばしば、互いに借用し合っている言語に対応するよう設計されているので、各言語で必要とされる文字は、通常は1つの部に収容されている。しかしながら、文字と言語の組み合わせによっては転写なしでは収容できない。そのため、変換を可能な限りスムーズにしようとする努力がなされてきた。たとえば、ドイツ語はその7つの特殊文字をすべてのラテン変種 (1-4, 9-10, 13-16) で同じ符号位置に持ち、多くの符号位置で文字のセット間の違いはダイアクリティカルマークにのみ存在する。とくに、1-4の変種は共同で設計され、ある特定の符号化文字は特定の1位置に出現するか、あるいはまったく出現しないという特性を持つ。

表

ISO 8859の各部の比較
2進8進10進16進 123456789101113141516
10100000240160A0 ノーブレークスペース (NBSP)
10100001241161A1 ¡ĄĦĄЁ ‘ ¡Ąก”Ḃ¡Ą
10100010242162A2 ¢˘ĸЂ ’¢¢Ēข¢ḃ¢ą
10100011243163A3 £Ł£ŖЃ £Ģฃ£Ł
10100100244164A4 ¤Є¤€¤Īค¤Ċ€
10100101245165A5 ¥Ľ ĨЅ ₯¥Ĩฅ„ċ¥„
10100110246166A6 ¦ŚĤĻІ ¦Ķฆ¦ḊŠ
10100111247167A7 §Ї §ง§
10101000250168A8 ¨Ј ¨ĻจØẀš
10101001251169A9 ©ŠİŠЉ ©Đฉ©
10101010252170AA ªŞĒЊ ͺתŠชŖẂªȘ
10101011253171AB «ŤĞĢЋ «Ŧซ«ḋ«
10101100254172AC ¬ŹĴŦЌ،¬Žฌ¬Ỳ¬Ź
10101101255173AD ソフトハイフン (SHY)ญSHY
10101110256174AE ®Ž ŽЎ  ®Ūฎ®ź
10101111257175AF ¯Ż¯Џ ―¯ŊฏÆŸ¯Ż
10110000260176B0 °А °ฐ°Ḟ°
10110001261177B1 ±ąħąБ ±ąฑ±ḟ±
10110010262178B2 ²˛²˛В ²ēฒ²Ġ²Č
10110011263179B3 ³ł³ŗГ ³ģณ³ġ³ł
10110100264180B4 ´Д ΄´īด“ṀŽ
10110101265181B5 µľµĩЕ ΅µĩตµṁµ”
10110110266182B6 śĥļЖ Άķถ
10110111267183B7 ·ˇ·ˇЗ ·ท·Ṗ·
10111000270184B8 ¸И Έ¸ļธøẁž
10111001271185B9 ¹šıšЙ Ή¹đน¹ṗ¹č
10111010272186BA ºşēК Ί÷ºšบŗẃºș
10111011273187BB »ťğģЛ؛»ŧป»Ṡ»
10111100274188BC ¼źĵŧМ Ό¼žผ¼ỳŒ
10111101275189BD ½˝½ŊН ½―ฝ½Ẅœ
10111110276190BE ¾ž žО Ύ¾ūพ¾ẅŸ
10111111277191BF ¿żŋП؟Ώ ¿ŋฟæṡ¿ż
11000000300192C0 ÀŔÀĀР ΐ ÀĀภĄÀ
11000001301193C1 ÁСءΑ ÁมĮÁ
11000010302194C2 ÂТآΒ ÂยĀÂ
11000011303195C3 ÃĂ ÃУأΓ ÃรĆÃĂ
11000100304196C4 ÄФؤΔ ÄฤÄ
11000101305197C5 ÅĹĊÅХإΕ ÅลÅĆ
11000110306198C6 ÆĆĈÆЦئΖ ÆฦĘÆ
11000111307199C7 ÇĮЧاΗ ÇĮวĒÇ
11001000310200C8 ÈČÈČШبΘ ÈČศČÈ
11001001311201C9 ÉЩةΙ ÉษÉ
11001010312202CA ÊĘÊĘЪتΚ ÊĘสŹÊ
11001011313203CB ËЫثΛ ËหĖË
11001100314204CC ÌĚÌĖЬجΜ ÌĖฬĢÌ
11001101315205CD ÍЭحΝ ÍอĶÍ
11001110316206CE ÎЮخΞ ÎฮĪÎ
11001111317207CF ÏĎÏĪЯدΟ ÏฯĻÏ
11010000320208D0 ÐĐ ĐаذΠ ĞÐะŠŴÐ
11010001321209D1 ÑŃÑŅбرΡ ÑŅัŃÑŃ
11010010322210D2 ÒŇÒŌвز  ÒŌาŅÒ
11010011323211D3 ÓĶгسΣ ÓำÓ
11010100324212D4 ÔдشΤ ÔิŌÔ
11010101325213D5 ÕŐĠÕеصΥ ÕีŐ
11010110326214D6 ÖжضΦ ÖึÖ
11010111327215D7 ×зطΧ ×Ũื×Ṫ׌
11011000330216D8 ØŘĜØиظΨ ØุŲØŰ
11011001331217D9 ÙŮÙŲйعΩ ÙŲูŁÙ
11011010332218DA ÚкغΪ ÚฺŚÚ
11011011333219DB ÛŰÛл Ϋ Û ŪÛ
11011100334220DC Üм ά Ü Ü
11011101335221DD ÝŬŨн έ İÝ ŻÝĘ
11011110336222DE ÞŢŜŪо ή ŞÞ ŽŶÞȚ
11011111337223DF ßп ί‗ß฿ß
11100000340224E0 àŕàāрـΰאàāเąà
11100001341225E1 áсفαבáแįá
11100010342226E2 âтقβגâโāâ
11100011343227E3 ãă ãуكγדãใćãă
11100100344228E4 äфلδהäไä
11100101345229E5 åĺċåхمεוåๅåć
11100110346230E6 æćĉæцنζזæๆęæ
11100111347231E7 çįчهηחçį็ēç
11101000350232E8 èčèčшوθטèč่čè
11101001351233E9 éщىιיé้é
11101010352234EA êęêęъيκךêę๊źê
11101011353235EB ëыًλכë๋ėë
11101100354236EC ìěìėьٌμלìė์ģì
11101101355237ED íэٍνםíํķí
11101110356238EE îюَξמî๎īî
11101111357239EF ïďïīяُοןï๏ļï
11110000360240F0 ðđ đȑِπנğð๐šŵðđ
11110001361241F1 ñńñņёّρסñņ๑ńñń
11110010362242F2 òňòōђْςעòō๒ņò
11110011363243F3 óķѓ σףó๓ó
11110100364244F4 ôє τפô๔ōô
11110101365245F5 õőġõѕ υץõ๕ő
11110110366246F6 öі φצö๖ö
11110111367247F7 ÷ї χק÷ũ๗÷ṫ÷ś
11111000370248F8 øřĝøј ψרø๘ųøű
11111001371249F9 ùůùųљ ωשùų๙łù
11111010372250FA úњ ϊתú๚śú
11111011373251FB ûűûћ ϋ û๛ūû
11111100374252FC üќ ό ü ü
11111101375253FD ýŭũ§ ύLRMıý żýę
11111110376254FE þţŝūў ώRLMşþ žŷþț
11111111377255FF ÿ˙џ   ÿĸ ’ÿ

どの部でも位置 0xA0 には必ずノーブレークスペースが存在し、0xAD にはほとんどの部でソフトハイフンが存在する。これらの位置には改行のみを示している。他の空のフィールドは未割り当てであるか、使用しているシステムが表示できないかのいずれかである。

ISO/IEC 8859-7:2003とISO/IEC 8859-8:1999の版で新規追加された文字がある。LRMはleft-to-right mark (U+200E) の頭字語で、RLMはright-to-left mark (U+200F) の頭字語である。

UnicodeおよびUCSとの関係

1991年から、Unicode Consortiumは、ISOと協力してUnicode標準とISO/IEC 10646: 国際符号化文字集合 (UCS) を開発する作業をしてきた。この2つの標準が作成された目的の1つは、各文字に (当初は) 16ビットの符号値を割り当てることによって ISO 8859の文字レパートリを統合することであった。いくつかの符号値は未割り当てのまま残った。時を経て、それらのモデルは文字を固定ビット幅の値よりむしろ抽象的な数値の符号値にマップするよう再構成された。その結果、より多くの符号位置と符号化法に対応できるようになった。

UnicodeとISO/IEC 10646は現在、100万を超える符号空間におよそ100,000の文字を割り当て、すべての利用可能な符号位置を表現できるいくつかの標準エンコーディングを定義している。UnicodeとUCSの標準エンコーディングは1つから4つの8ビット符号値の並びを使用する (UTF-8) か、1つか2つの16ビット符号値を使用する (UTF-16) か、1つの32ビット符号値を使用する(UTF-32もしくはUCS-4)。1つの16ビット符号値を使用して利用可能な符号位置の17分の1だけを表現可能なより古いエンコーディング (UCS-2) も存在する。これらの符号化形式のうち、UTF-8のバイト並びのみが固定された順序を持っている。他のものは特殊な符号化帯域外の手段で解決される、プラットフォーム依存のバイト順序の問題がある。

より新しいバージョンのISO 8859は文字をそのUnicode/UCS名称とU+nnnn記法で表現している。これは事実上、ISO 8859の各部をUCSの非常に小さな部分集合から単一の8ビットバイトに写像する、Unicode/UCSの符号化方式の1つになったに等しいと言えよう。UnicodeとUCSの最初の256文字はISO-8859-1の文字と同じである。

ISO 8859の部やその派生を含む1バイトキャラクタセットは、安定していてソフトウェアへの実装が簡単であるという利点から、1990年代を通じて好んで使われてきた。つまり、1バイトと1文字が等価であるという単純な構造であるため、ほとんどの単一言語アプリケーションにとっては十分実用になるいっぽう、結合文字や字形の変化がない。

1文字に複数バイトを使用するためには比較的多くのコンピュータ資源が必要だが、これが減少し始めたため、プログラミング言語とオペレーティングシステムはそのシステムのコードページに加え、Unicodeのネイティブサポートを追加した。Windows NTはきわめて早期にUnicodeを導入した。しかしながら、Windows 9xのUnicodeサポートは特殊な互換レイヤをリンクするか、Windows APIのきわめて限られたサブセットのみを使って設計する必要があったため、Unicodeはほとんど使われることがなかった。Unicode対応オペレーティングシステムが広まるにつれ、ISO 8859や他のレガシーエンコーディングは人気を失っていった。ISO 8859と1バイト文字モデルの残存勢力が、多くのオペレーシングシステム、プログラミング言語、データ格納システム、ネットワークアプリケーション、表示ハードウェア、エンドユーザアプリケーションソフトウェアの奥深くに残っているが、昨今のコンピュータアプリケーションはほとんどがUnicodeを内部的に使用しており、他のエンコーディングとの相互変換が必要な場合には変換テーブルに頼っている。

開発状況

ISO/IEC 8859標準はISO/IEC第1合同技術委員会 (JTC 1) 第2小委員会 (SC 2) 第3作業部会 (WG 3) によって保守されていた。2004年6月、WG 3は解散し、保守業務は SC 2 に転送された。小委員会に唯一残っている作業部会であるWG 2はISO/IEC 10646の開発に専念しているため、現在ISO/IEC 8859標準は更新されていない。

参考文献

  • ISO/IEC 8859文字コード標準と正確に対応することを意図したECMA標準が、以下に存在する (英語) :
    • Standard ECMA-94: 8-Bit Single Byte Coded Graphic Character Sets - Latin Alphabets No. 1 to No. 4 2nd edition (1986年6月)
    • Standard ECMA-113: 8-Bit Single-Byte Coded Graphic Character Sets - Latin/Cyrillic Alphabet 3rd edition (1999年12月)
    • Standard ECMA-114: 8-Bit Single-Byte Coded Graphic Character Sets - Latin/Arabic Alphabet 2nd edition (2000年12月)
    • Standard ECMA-118: 8-Bit Single-Byte Coded Graphic Character Sets - Latin/Greek Alphabet (1986年12月)
    • Standard ECMA-121: 8-Bit Single-Byte Coded Graphic Character Sets - Latin/Hebrew Alphabet 2nd edition (2000年12月)
    • Standard ECMA-128: 8-Bit Single-Byte Coded Graphic Character Sets - Latin Alphabet No. 5 2nd edition (1999年12月)
    • Standard ECMA-144: 8-Bit Single-Byte Coded Character Sets - Latin Alphabet No. 6 3rd edition (2000年12月)
  • ISO/IEC 8859-1からUnicodeへのマッピングテーブルがプレーンテキストファイルとしてUnicodeのFTPサイトに存在する。