ISO 8859-1(より正式にはISO/IEC 8859-1)はISO/IEC 8859の第一部で定められた文字コード。ヨーロッパの言語で用いられるラテンアルファベットの大部分を含んでいる。くだけた言い方ではLatin-1とも呼ばれる。

ISO 8859-1に追加の文字を(16進符号0x00-0x1Fの「C0領域」と、0x80-0x9F「C1領域」の範囲に)割り当てた文字コードにISO-8859-1余分なハイフンに注意)とWindows-1252がある(後述)。

ISO 8859-1は、当初はISOによって開発されたが、後にISOとIECによって合同で保守された。2004年6月、8ビット符号化文字集合の整備を担当するISO/IECの作業部会は、国際符号化文字集合 (UCS) とUnicodeの開発に専念するために解散し、ISO 8859-1を含むすべてのISO 8859の整備を中止した。コンピュータアプリケーションにおいては、(UTF-8UTF-16のような)完全なUCSサポートを提供するエンコーディングが、ISO 8859-1に基づくエンコーディングよりもますます多く使われるようになりつつある。

網羅範囲

編集

ISO 8859-1が符号化しているものは「ラテン文字第1部」と呼ばれ、ラテン用字系の191文字からなる。この文字エンコーディングはアメリカ州西ヨーロッパオセアニア、およびアフリカの多くで使われている。東アジア言語のほとんどの標準ローマ字表記でも広く使われている。

各文字は単一の8ビット符号値で符号化される。これらの符号値は、データ交換システムが以下のヨーロッパ言語で通信する際の需要をほぼ満たす が、足りない文字のためにわずかな例外がある。これについては注記を参照されたい。

現代のアルファベットを完全に網羅している言語

編集

アルファベットをほぼ完全にカバーしているため広く対応している言語

編集
  • オランダ語(「IJ」「ij」が足りないがこれらは電子形式では常に「IJ」や「ij」として表現されるべきである)
  • エストニア語(外来語で使われる「Š」「š」「Ž」「ž」が足りない)
  • フランス語(「Œ」「œ」およびきわめてまれな「Ÿ」が足りない; これらは一般に通常は必要なリガチャなしで「OE」や「oe」に置き換えられ、トレマなしで「Y」に置き換えられる)
    • Windows-1252とISO-8859-15はこれらを含むことに注意
  • フィンランド語(外来語で使われる「Š」「š」「Ž」「ž」が足りない)
    • Windows-1252とISO-8859-15はこれらを含むことに注意

約物と引用符の範囲

編集

引用符としては「«」「»」、「"」「'」のみを含み、上述の言語の印刷で用いられていた引用符を含まない。

また、このエンコーディングはアポストロフィーと方向付き単引用符を提供しない。

しかし、テキスト中で6型/9型の引用符やアポストロフィーの代わりに前進付きグレイヴ・アクセントと前進付きアキュート・アクセント(これらはどちらもISO 8859-1に含まれる)を使うやりかたもある。なお、このやりかただと、これらの文字が傾いたくさび型のグリフで表示される書体でもうまく表示できる。

歴史

編集

ISO 8859-1はDECの有名なVT220英語版端末で使われていたMultinational Character Set英語版をもとに作られた。開発は欧州電子計算機工業会(ECMA、現Ecmaインターナショナル)と米国国家規格協会が共同で行い、1984年12月ECMA-94として制定、1985年3月にECMA-94として出版された。ただし、この時点のECMA-94は、13/07「×」と15/07「÷」を含んでいなかった。1986年6月にECMA-94は改定されており、 ECMA-94 第二版は規格の一部としてISO/IEC 8859-2ISO/IEC 8859-3、およびISO/IEC 8859-4をも含んでいる。

ECMA-94の一部であるISO 8859-1およびISO 8859-2は、1987年2月15日にISOの国際規格として制定された。また、ISO 8859-3およびISO 8859-4は、少し遅れて1988年4月15日に制定されている。

ISO/IEC 8859-15との関係

編集

ISO/IEC 8859-1にはほとんどのフランス語テキストの表記に十分な文字が含まれているが、使用頻度の低い少数の文字が欠けている。文字 IJ の単一グリフによる表現、外国の固有名詞や少数の外来語で使われるフィンランド語の文字(ŠŽ)、印刷用の引用符ダッシュ、およびユーロ記号 (en) () やダガー (†) のようなよく使われる記号も不足している。

ISO/IEC 8859-15はISO/IEC 8859-1の更新版として開発され、これらの文字のいくつかを提供した。しかしそのためには、ISO/IEC 8859-1からあまり使われない文字をいくつか取り除く必要があった。取り除かれた文字は以下の通りで、分数記号や単独のダイアクリティカルマークが含まれる。¤, ¦, ¨, ´, ¸, ¼, ½, ¾ である。

符号表

編集

ISO/IEC 8859-1によって符号化される191文字はすべて「図形」(graphic。制御符号でない文字を表すISOの用語)であり、かつほとんどのWebブラウザと互換性があるため、以下の表でグリフとして示すことができる。空白、ノーブレークスペース、およびソフトハイフン文字は通常不可視なので、その名前の省略形によって表現してある。すべての他の文字はそのまま表現してある。行見出しと列見出しは8ビット符号値を作り出すための16進数による桁の組み合わせを示す。たとえば、文字 L は符号値 4C である。

ISO/IEC 8859-1
x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
0x 未使用
1x
2x SP ! " # $ % & ' ( ) * + , - . /
3x 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
4x @ A B C D E F G H I J K L M N O
5x P Q R S T U V W X Y Z [ \ ] ^ _
6x ` a b c d e f g h i j k l m n o
7x p q r s t u v w x y z { | } ~
8x 未使用
9x
Ax NBSP ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ SHY ® ¯
Bx ° ± ² ³ ´ µ · ¸ ¹ º » ¼ ½ ¾ ¿
Cx À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï
Dx Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß
Ex à á â ã ä å æ ç è é ê ë ì í î ï
Fx ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ

符号値00–1F, 7F–9FはISO/IEC 8859-1では文字を割り当てていない。

下位領域の20から7E(G0部分集合)はISO 646 US版(通称ASCII)のG0部分集合と正確に同じマッピングである。ISO 2022の指示シーケンスは"ESC ( B"。上位領域のA0からFF(G1部分集合)はISO 2022のシーケンス"ESC . A"で指示される部分集合と正確に同じマッピングである。

関連する文字マッピング

編集

ISO/IEC 8859-1標準は、長い間多数の 文字マッピング(別名キャラクタセットcharsets、もしくはコードページ)の基盤となってきた。キャラクタセットのうちもっとも有名なものは ISO-8859-1Windows-1252である。これらのマッピングはどちらもISO/IEC 8859-1の上位集合である。すなわち、これらは00–1F, 7F, および 80〜9F範囲にある符号値の少なくとも一部に追加の文字をマッピングすることにより、標準の191文字に割り当てを追加する。

ISO-8859-1

編集

1992年Internet Assigned Numbers Authorityは文字マッピングISO_8859-1:1987インターネットで使うために登録した。ISO_8859-1:1987はISO 8859-1の上位集合であり、その推奨MIMEISO-8859-1(ISO 8859-1に余分なハイフンが付いていることに注意)でより広く知られている。この写像はC0およびC1制御文字を符号値00–1F, 7F, および80–9Fに割り当てている。8ビットで可能なあらゆる値に割り当てをしているため、256文字を提供していることになる。

ISO-8859-1は(少なくとも規格によると)HTTP経由で配信され、"text/"で始まるMIMEタイプの文書における既定のエンコーディングである。ISO-8859-1はある種の記述的なHTTPヘッダの値の既定のエンコーディングであり、この文字集合を使うロケールのほとんどのUNIXマシン上でX Window Systemによって使われる標準エンコーディングである。ISO-8859-1はさらにHTML 3.2文書で許される文字レパートリの基になっている(しかしながら、HTML 4.0はUnicodeに基づく)。

エスケープシーケンス(ISO/IEC 6429やISO/IEC 2022に由来する)はISO-8859-1で符号化されているとラベル付けされた文書では解釈されない。上述の正式名称や推奨MIME名ばかりでなく、以下のような別名がISO-8859-1のために登録されている: ISO_8859-1, ISO-8859-1, iso-ir-100, csISOLatin1, latin1, l1, IBM819, CP819. ISO-8859-1はISO/IEC 10646Unicodeの最初の256個の符号位置にも組み込まれた。

符号値 制御文字 省略形
00 空文字 Null character NUL
01 ヘッダ開始 Start of Heading SOH
02 テキスト開始 Start of Text STX
03 テキスト終了 End of Text ETX
04 伝送終了 End of Transmission EOT
05 問い合わせ Enquiry ENQ
06 肯定応答 Acknowledge character|Acknowledge ACK
07 ベル Bell character BEL
08 1文字後退 Backspace BS
09 水平タブ Tab TAB
0A 改行 Line Feed LF
0B 垂直タブ Vertical Tab VT
0C 書式送り Form Feed FF
0D 復帰 Carriage Return CR
0E シフトアウト Shift Out SO
0F シフトイン Shift In SI
10 データリンク拡張 Data Link Escape DLE
11 装置制御1 Device Control 1 DC1
12 装置制御2 Device Control 2 DC2
13 装置制御3 Device Control 3 DC3
14 装置制御4 Device Control 4 DC4
15 否定応答 Negative-acknowledge character NAK
16 同期信号 Synchronous Idle SYN
17 伝送ブロック終了 End of Transmission Block ETB:
18 キャンセル Cancel character CAN
19 媒体終端 End of Medium EM
1A 置換 Substitute (character) SUB
1B エスケープ Escape character ESC
1C ファイルセパレータ File Separator FS
1D グループセパレータ Group Separator GS
1E レコードセパレータ Record Separator RS
1F ユニットセパレータ Unit Separator US
7F 削除 Delete DEL
 
符号値 制御文字 省略形
80 Padding Character PAD
81 High Octet Preset HOP
82 Break Permitted Here BPH
83 No Break Here NBH
84 Index IND
85 Next Line NEL
86 Start of Selected Area SSA
87 End of Selected Area ESA
88 Character Tabulation Set HTS
89 Character Tabulation with Justification HTJ
8A Line Tabulation Set VTS
8B Partial Line Forward PLD
8C Partial Line Backward PLU
8D Reverse Line Feed RI
8E Single Shift 2 SS2
8F Single Shift 3 SS3
90 Device Control String DCS
91 Private Use 1 PU1
92 Private Use 2 PU2
93 Set Transmit State STS
94 Cancel Character CCH
95 Message Waiting MW
96 Start of Guarded Area SPA
97 End of Guarded Area EPA
98 Start of String SOS
99 Single Graphic Character Introducer SGCI
9A Single Character Introducer SCI
9B Control Sequence Introducer CSI
9C String Terminator ST
9D Operating System Command OSC
9E Privacy Message PM
9F Application Program Command APC

注: これらの制御文字のほとんどは、移植可能なISO-8859-1で符号化されたプレーンテキスト文書で使うために設計されたわけではなく、動作が標準化されている数個の文字を例外として、特定のプロトコルや機器でのみ使われる。例外は次の通り。TAB (09), LF (0A), CR (0D), NEL (85)。TAB以外は行の終わりや段落の区切りを符号化するために使われ、TABはしばしばホワイトスペースと等価であるとみなされる。しかしながら FF (0C) もプレーンテキスト文書を解釈するいくつかのアプリケーションで追加の無視可能な行頭のホワイトスペースとして広く受け入れられ、印刷時の明示的な改ページ位置を示すために使われる。

また、いくつかのエンコーディングでは、BS (08) を使って印刷機器上での複数文字の重ね打ちをエミュレートすることによって追加の文字を作成することを認めている。

いくつかのISO標準(たとえば ISO 2022)ではいくつかの制御記号に特定の機能を割り当てている。 SO (0E), SI (0F), DLE (10), ESC (1B) および SS2 (8E) が後続の文字エンコーディングの制御や、複数のエンコーディング間での切り替えに使われる。

NUL文字 (00) はいくつかのプログラミング言語における文字列の終端子やデータベースレコードの埋め草として広く使われ、無視されなければならず、符号化されたテキストの一部ではない。STX (02) とETX (03) はいくつかの伝送プロトコルでフレームの区切りとして広く使われる。SUB (1A) も入力伝送ストリームで検出されたエラーを示すために広く使われ、図形的に描画されることもある。DC1 (11) とDC3 (13) はXON/XOFFプロトコルで伝送速度の制御に広く使われる。最後に、EM (19) やEOT (04) はいくつかのテキストファイル形式でファイル終端マーカーとして使われることがある。

ISO-8859-1とWindows-1252の取り違え

編集

実際にはWindows-1252で符号化されているのに、誤ってキャラクタセットISO-8859-1のラベルを付けることは、きわめてよくある誤りである。Windows-1252では、0x80から0x9Fの間の符号は文字と約物に使われるが、ISO-8859-1では制御符号である。多くのWebブラウザや電子メールクライアントはこのようなラベル付けの誤りに対応するため、ISO-8859-1の制御符号をWindows-1252の文字と解釈するが、これは標準に準拠した振る舞いではなく、ISO-8859-1とラベル付けされた内容ではこういった文字を生成することを避けるよう注意が払われるべきである。

類似のキャラクタセット

編集

Apple MacintoshコンピュータはMac OS Roman英語版と呼ばれる文字エンコーディングを、1984年に導入した。Mac Romanは西欧のDTPに適切であることを意図していた。Mac RomanはISO-8859-1と同様ASCIIの上位集合であり、ISO-8859-1の文字をほとんど含んでいるが、文字の配列は完全に異なる。Internet Assigned Numbers Authorityが "Macintosh" として登録した後継バージョンは国際通貨記号 ¤ をユーロ記号 € で置き換えた。ISO 8859-1に含まれるがこの集合に含まれないわずかな文字は、しばしば古いMacintoshブラウザ(Internet Explorer for Macの最終版を含む)でWebサイト上のテキストを編集するとき、トラブルの元となる。しかしながらMacRomanでは、Windows-1252がC1符号値の範囲に持つ追加の文字にはすべて対応しており、わずかに不足している少数の文字を除き、グリフの符号値番号をマッピングし直すことによって、MacintoshでISO-8859-1(C1制御文字を含む)やWindows-1252として符号化/マークされたファイル (および電子メール) を送受信できる。

DOSにはコードページ850が存在し、これはISO-8859-1が持つすべての印字可能文字を (配列は完全に異なるものの) 持ち、加えてコードページ437の最も広く使われる図形文字も含む。

関連項目

編集

外部リンク

編集