ISO/IEC 646

**ISO/IEC 646**は7ビットの文字コードを規定する国際標準化機構 (ISO) 標準であり、これを元に各国語版の文字コードが規定される。

アメリカの規格であるASCIIを国際化した体裁となっている。ラテンアルファベット（ISO基本ラテンアルファベット）と数字を中心とした共通部分と、ASCIIでは記号となっている各国規格で自由に割り当てられる部分に分かれており、ヨーロッパ各国ではこの部分にダイアクリティカルマークつき文字を割り当てることにより自国語の文章を符号化できるようになっている。

現在ではヨーロッパでは8ビットコードであるISO/IEC 8859が主流となっており、この規格はあまり使われていない。なお、UnicodeのISO規格であるISO/IEC 10646の規格番号は、この規格の番号にちょうど10000を加えた値となっている。

## 歴史
1962年、ISOの技術委員会97（電子計算機と情報処理）は、文字符号の標準化をするための専門ワークグループBを設立した (ISO/TC 97B)。ISO/TC 97Bは、6bit符号案と7bit符号案を作成し、親委員会の回覧投票にかけられた。（同年末、ISO/TC 97Bは、ISO/TC 97/SC 2と改称。）この7bit案は現在のものと異なり、小文字部分が未定義であったり、制御符号が36個あったりしていた。

1963年、6bit案および7bit案の投票結果は賛成多数であった。6bit符号案は若干の修正を経て、ヨーロッパにて**ECMA-1**規格として制定された。またアメリカは7bit案基づき、ASCIIを制定した。

1964年、ISO/TC 97/SC 2は、7bit符号案に小文字等の追加した7bit符号の第3次案を提出した。

1965年から1966年にかけて、7bit符号案に対する、ヨーロッパの各国で使用されるアクセント記号や通貨記号の割り当てについて議論が行われた。その結果、制御記号は0/0 - 1/15の32文字、2/3は ‘￡’ または ‘#’ のどちらか、4/0 (@)、5/14 (＾)、6/0 (｀) は推奨文字があるものの事情によっては変更可能、そして5/11 - 5/13と7/11 - 7/13は自由領域とする最終案が確定した。

1967年6月、ECMAはISOの7bitコードの最終案を**ECMA-6**規格として制定した。同年12月22日、ISOは**ISO R 646**（Rは推奨を意味する）を勧告した。

1973年7月1日、ISO 646が改訂・制定された。1973年版では2つの表が制定された。1つ目は1967年版を踏襲し、さらに2/4を ‘$’ と ‘¤’（国際通貨記号）のどちらでも実装可にしたBCT (Basic Code Table) 版、2つ目は2/3, 2/4, 4/0, 5/11 - 5/14, 7/11 - 7/13に全て推奨文字を割り当てたIRV（International Reference Version; 国際基準版）である。ただしIRV版はASCIIと比較し、2/4は ‘¤’ であり、また7/14はオーバーラインである点が異なっていた。

1991年12月25日、改正されたISO/IEC 646が制定され、その国際基準版はASCIIと完全一致するよう、2/4は ‘$’ に、7/14はチルダに変更された。

### 発行された標準
* ISO 646:1972 
* ISO 646:1983, Status: withdrawn
* ISO/IEC 646:1991

## 符号表

以下の表に、ISO/IEC 646の文字コードセットを示す。各々の文字は、Unicodeで相当するものの十六進コードとISO/IEC 646コードの十進値で示される。灰色で色掛けされたセルは、国によって異なる文字が定義されるコードポイントを示す。実際の定義は下に示す。

## ISO/IEC 646に準拠した標準
ISO/IEC 646に準拠した国家規格は、以下の通りである。

以下は、ISO/IEC 646に準拠したプロプライエタリな規格で、後に国際的な使用のために標準的団体によって承認されたものである。

各標準で異なっている文字は、以下の通りである。

| style="text-align:center;"|}
| style="text-align:center;"|}
| style="text-align:center;"|}
| style="text-align:center;"|}
| style="text-align:center;"|}
| style="text-align:center;"|}
| style="text-align:center;"|}
|  style="text-align:center; background:#ccf;"|å
|  style="text-align:center; background:#ccf;"|å
|  style="text-align:center; background:#ccf;"|å
|  style="text-align:center; background:#ccf;"|å
|  style="text-align:center; background:#ccf;"|å
|  style="text-align:center; background:#ccf;"|ü
|  style="text-align:center; background:#ccf;"|ü
|  style="text-align:center; background:#ccf;"|è
|  style="text-align:center; background:#ccf;"|è
|  style="text-align:center; background:#ccf;"|è
|  style="text-align:center; background:#ccf;"|è
|  style="text-align:center; background:#ccf;"|ú
|  style="text-align:center; background:#ccf;"|æ
|  style="text-align:center; background:#ccf;"|è
|  style="text-align:center; background:#ccf;"|õ
|  style="text-align:center; background:#ccf;"|õ
|  style="text-align:center; background:#ccf;"|ç
|  style="text-align:center; background:#ccf;"|ç
|  style="text-align:center; background:#ccf;"|[
|  style="text-align:center; background:#ccf;"|Ħ
|  style="text-align:center; background:#ccf;"|ć
| style="text-align:center;"|}
|  style="text-align:center; background:#ccf;"|ü
|-
|  style="background:#eee; text-align:right;"|111&nbsp;1110
|  style="background:#eee; text-align:right;"|126
|  style="background:#eee; text-align:right;"|7E
|  style="text-align:center; background:#666;"|&nbsp;
|  style="text-align:center; background:#666;"|&nbsp;
| style="text-align:center;"|~
|  style="text-align:center; background:#ccf;"|‾
|  style="text-align:center; background:#666;"|&nbsp;
|  style="text-align:center; background:#ccf;"|‾
|  style="text-align:center; background:#ccf;"|‾
|  style="text-align:center; background:#ccf;"|‾
|  style="text-align:center; background:#fcc;"|˜
|  style="text-align:center; background:#ccf;"|‾
|  style="text-align:center; background:#ccf;"|ü
|  style="text-align:center; background:#fcc;"|¯
|  style="text-align:center; background:#ccf;"|
|  style="text-align:center; background:#fcc;"|¯
|  style="text-align:center; background:#ccf;"|ü
|  style="text-align:center; background:#ccf;"|ß
|  style="text-align:center; background:#fcc;"|˝
|  style="text-align:center; background:#ccf;"|¨
|  style="text-align:center; background:#fcc;"|¨
|  style="text-align:center; background:#ccf;"|û
|  style="text-align:center; background:#ccf;"|û
|  style="text-align:center; background:#ccf;"|á
|  style="text-align:center; background:#ccf;"|ö
|  style="text-align:center; background:#ccf;"|ì
|  style="text-align:center; background:#fcc;"|°
|  style="text-align:center; background:#fcc;"|˜
|  style="text-align:center; background:#fcc;"|˜
|  style="text-align:center; background:#fcc;"|¨
|  style="text-align:center; background:#fcc;"|¨
|  style="text-align:center; background:#ccf;"|Ċ
|  style="text-align:center; background:#ccf;"|č
|  style="text-align:center; background:#fcc;"|¯
|  style="text-align:center; background:#ccf;"|û
|}

上の表で青および赤の背景のセルは、ISO/IEC 10646およびUnicodeの基本ラテン文字で使われているアメリカ版との違っている箇所を示す。

赤い背景のセルの文字は結合文字で、アルファベットに先行または後置（バックスペースを使用）して用いられる。このコード化は非推奨とみなされている。

以下の規格は、7ビット文字コードではあるが、正式にはISO/IEC 646に準拠していない。

* ELOT 927 - ギリシャ文字を0x61-0x71, 0x73-0x79（ISO/IEC 646ではラテン文字の小文字）に割り当てている。
* KOI-7(KOI) - キリル文字を0x60-0x7E（ISO/IEC 646ではラテン文字の小文字）に割り当てている。KOI8に置き換えられた。
*  - ヘブライ文字を0x60–0x7A（ISO/IEC 646ではラテン文字の小文字およびグラーブアクセント）に割り当てている。ISO/IEC 8859-8では、SI 960のヘブライ文字の部分をそのまま0xE0-0xFA（最上位ビットを1）に移動させている。
* ASMO 449 - アラビア文字を0x41-0x5A, 0x60-0x6A（ISO/IEC 646ではラテン文字の大文字・小文字）に割り当てている。ISO/IEC 8859-6では、ASMO 449のアラビア文字の部分をそのまま0xC1-0xDA, 0xE0-0xEA（最上位ビットを1）に移動させている。

## 脚注

## 参考文献
* 安岡孝一・安岡素子『文字符号の歴史・欧米と日本編』（共立出版）ISBN 4-320-12102-3

## 関連項目
* ISO基本ラテンアルファベット
* :en:Basic Latin (disambiguation)
* ASCII
* 拡張ASCII
* EBCDIC
* ISO/IEC 2022
* ISO/IEC 8859
* ISO/IEC 10646
* ISO/IEC 6937
* 基本ラテン文字 (Unicodeのブロック)
* トライグラフ
* ITU T.50
* ISO/IEC JTC 1/SC 2

## 外部リンク
* The ECMA-6 Standard
* 
* History at GNU Aspell website
* Character Tables by Koichi Yasuoka (see *Domestic ISO646 Character Tables* and *Quasi-ISO646 Character Tables*)
* Turkish Text ''Deasciifier'' a tool (based on statistical pentagram analysis of the Turkish language) which reverts an ASCII'fied Turkish text by determining the appropriate (but ambiguous) diacritics normally needed in Turkish but missing in the US-ASCII set.