文字コード(もじコード、英: character code)は、文字(キャラクタ)を通信やコンピュータで扱えるように、一文字一文字に固有の識別番号を与えて区別できるようにした、その対応関係についての規則のこと。

## 概説

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

## 歴史

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

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

## Unicode

Unicode文字符号化モデルでは、文字コードは以下の4段階に分けられる。

その後、バイト列をgzipなどで圧縮したり、7ビット伝送路に通すためBase64、uuencode、BinHex、Quoted-printableなどで変換することがあるがこれらは文字コードの範囲外である。

## 外字

外字とは表外字(規格表の外の文字)の略であり、ユーザがデザインして用いるユーザ定義文字や、メーカーなどが定義した環境依存文字(いわゆる機種依存文字)もしくはベンダ拡張漢字のことを指す。

外字というユーザが独自に文字を登録できる領域がある文字コードは複数存在する。Unicodeにおいては6,400+131,072文字の「PUA(Private Use Area=私用領域)」があり、Windows-31J(Microsoft Windows Codepage 932)にも1,880文字の外字領域がある。ユーザが独自にフォントを登録した文字(ユーザ定義文字)は、文書の交換時に配慮しない限りは他の環境で読むことができないため、互換性の上で重大な問題を引き起こす場合がある。ベンダ拡張文字の場合は、ユーザが表外字でないことを認識せずに利用してしまうことがあるため、より重大な問題を引き起こす(例として挙げれば、Windows環境(CP932)のローマ数字がMac環境では化けて表示されるなど)。

JIS規格においては、JIS X 0208で定義された文字集合に対してEUC-JPまたはShift\_JISによる符号化を行う際、1〜94区に対応しない領域(EUC-JPやShift\_JISでは94区に94点をかけた8,836を超える文字が定義可能であるため)や、1〜94区の範囲内であっても文字が定義されていない箇所(JIS X 0208には、そのような空き領域が複数存在している)に外字を入れる実装が存在した。1997年改正(JIS X 0208:1997)ではShift\_JIS符号化およびEUC-JP符号化も規格で規定することにより、空き領域を外字として使用することが原則禁止された。またJIS X 0213:2000では、主要なベンダ外字の文字を規格に入れて94区までの空き領域をなくしたことで、94区までの区間内の外字を扱える箇所をなくし、2面を使用した実装水準4を選択する場合にはShift\_JIS-2004符号化の場合、94区外の領域も埋まるため、外字を入れることが可能な領域がなくなった。

## 文字コードの一覧(一部)

### 1バイト系文字コード(符号化文字集合)

1バイト系文字コードは、俗に「半角文字」と呼ばれることもある。

- US-ASCII(ASCII [ANSI INCITS 4] 対応)
- ISO/IEC 646
  - ISO646-JP
- ISO/IEC 8859(ISO/IEC 8859-1 〜 ISO/IEC 8859-16)
  - ISO-8859-1(ISO/IEC 8859-1 対応)
  - ISO-8859-5(ISO/IEC 8859-5 対応)
  - ISO-8859-6(ISO/IEC 8859-6 対応)
  - ISO-8859-7(ISO/IEC 8859-7 対応)
  - ISO-8859-11(ISO/IEC 8859-11 対応)
  - ISO-8859-15(ISO/IEC 8859-15 対応)
- windows-1252(Microsoft Windows Codepage 1252 対応)
- macintosh(MacRoman 対応)
- KOI8-R
- KOI8-U
- TIS-620
- EBCDIC
- JIS X 0201(JIS ローマ字、カタカナ)

### 2バイト系符号化文字集合

2バイト系文字コードは、俗に「全角文字」と呼ばれることもある。

- JIS X 0208 - 日本。(第一・第二水準漢字など)
- JIS X 0212(補助漢字など)
- JIS X 0213(JIS X 0208 に第三・第四水準漢字などを追加した文字集合。JIS X 0213:2004はJIS2004とも呼ばれる)
- GB 2312 - 中国の簡体字中国語
- GB 18030 - 中国
- KPS 9566 - 朝鮮語が使われる北朝鮮
- KS X 1001(KS C 5601) - ハングルなどが使われる韓国
- Big5 - 繁体字中国語
- CNS 11643 - 台湾

### 文字符号化方式と文字コード

- ISO/IEC 2022系(ISO/IEC 2022自体は文字符号化方式というより、そのフレームワークのようなものである)
  - ISO-2022-JP(RFC 1468、俗に「JISコード」と呼ばれる文字コード。JIS X 0208対応)
    - ISO-2022-JP-1(RFC 2237、JIS X 0208とJIS X 0212に対応)
    - ISO-2022-JP-2(RFC 1554、多言語拡張。JIS X 0208、JIS X 0212、GB 2312、KS X 1001、ISO/IEC 8859-1、ISO/IEC 8859-7対応)
    - ISO-2022-JP-3(JIS X 0213:2000対応)
    - ISO-2022-JP-2004(JIS X 0213:2004対応)
  - ISO-2022-CN(RFC 1922、GB 2312、CNS 11643[第一字面・第二字面]対応)
    - ISO-2022-CN-EXT(RFC 1922、GB 2312、ISO-IR-165、CNS 11643[第一字面から第七字面]対応)
  - ISO-2022-KR(RFC 1557、KS X 1001対応)
- EUC......拡張 UNIX コード(EUC)文字符号化方式を用いた8ビットの文字コード。ISO/IEC 2022の8ビット符号化表現に相当する。
  - EUC-JP(JIS X 0208 対応)
    - EUC-JISX0213(JIS X 0213:2000対応)
    - EUC-JIS-2004(JIS X 0213:2004対応)
  - EUC-KR(RFC 1557、KS X 1001対応)
  - GB2312(別名EUC-CN。GB 2312対応)
    - GBK(Microsoft Windows Codepage 936対応)
    - GB18030(GB 18030対応)
  - EUC-TW(CNS 11643対応)
- シフト符号化表現の文字符号化方式を用いた8ビットの文字コード。
  - Shift\_JIS(JIS X 0208対応)
    - Shift\_JISX0213(JIS X 0213:2000対応)
    - Shift\_JIS-2004(JIS X 0213:2004対応)
  - Windows-31J(Microsoftコードページ932対応)
  - x-Mac-Japanese(MacJapanese対応)
- その他の文字符号化方式を用いた7ビットの文字コード。
  - HZ-GB-2312(RFC 1842、RFC 1843、GB 2312対応)

### ISO/IEC 10646およびUnicode

- Unicode
- ISO/IEC 10646(UCS、JIS X 0221)※ISO/IEC 10646-1とISO/IEC 10646-2はISO/IEC 10646:2003で統合された。同様にJIS X 0221-1はJIS X 0221:2007で改訂された。JIS X 0221のうち、「日本文字部分レパートリ」はJIS X 0221 附属書JAという制限部分集合として定義する。

### Unicode の文字符号化方式

- UTF-8
- UTF-16 文字符号化形式
  - UTF-16
  - UTF-16BE
  - UTF-16LE
  - Compatibility Encoding Scheme for UTF-16: 8-Bit(CESU)
- UTF-32 文字符号化形式
  - UTF-32
  - UTF-32BE
  - UTF-32LE
- UTF-7
- UTF-EBCDIC
- Standard Compression Scheme for Unicode(SCSU)
- Binary Ordered Compression for Unicode(BOCU-1)

### 印刷業界の文字集合

印刷業界においては、公的な文字コード規格では包摂されている異体字やグリフの相違を厳密に区別したいというニーズが強く存在する。そのため、そのようなニーズに応える文字集合が企業主導で策定されている。一般的な情報交換に用いられることはない。

- Adobe-Japan1文字コレクション
  - Adobe-Japan1-0
  - Adobe-Japan1-1(JIS X 0208-1990、MacJapanese対応)
  - Adobe-Japan1-2(IBM拡張文字に対応)
  - Adobe-Japan1-3(OpenType Std)
  - Adobe-Japan1-4(OpenType Pro)
  - Adobe-Japan1-5(OpenType Pr5、JIS X 0213にほぼ対応)
  - Adobe-Japan1-6(OpenType Pr6、JIS X 0212・U-PRESS対応)
  - Adobe-Japan1-7(「令和」元号の合字対応)
- Adobe-Japan2文字コレクション
  - Adobe-Japan2-0(Adobe-Japan1-6に統合され廃止)
- Adobe-GB1文字コレクション(簡体字中国語)
  - Adobe-GB1-0
  - Adobe-GB1-1
  - Adobe-GB1-2
  - Adobe-GB1-3
  - Adobe-GB1-4
  - Adobe-GB1-5
- Adobe-CNS1文字コレクション(繁体字中国語)
  - Adobe-CNS1-0
  - Adobe-CNS1-1
  - Adobe-CNS1-2
  - Adobe-CNS1-3
  - Adobe-CNS1-4
  - Adobe-CNS1-5
  - Adobe-CNS1-6
  - Adobe-CNS1-7
- Adobe-Korea1文字コレクション(朝鮮語)
  - Adobe-Korea1-0
  - Adobe-Korea1-1
  - Adobe-Korea1-2(Adobe-KR9に移行)
- Adobe-KR文字コレクション
  - Adobe-KR9

- 電算写植
  - SKコード(SK72、SK78、外字A、外字B、外字C)

    :   写研が開発した文字コード。独自の文字セットを持つ。文字セットの大部分はすでにAdobe-Japan1に収録されている。
  - PMTコード

    :   印刷機械貿易が開発した文字コード。
- 新聞業界
  - CO-59
  - CO-77
  - K-JIS
  - U-PRESS

    :   共同通信社が開発したユニコードベースの文字コード。
- 電子書籍
  - BBeB 標準文字セット

    :   ユニコードをベースにソニーが拡張。
  - 新潮文庫の100冊の外字
  - 青空文庫が文学作品に登場するJIS X 0208にない文字を集めた文字リスト

### ベンダごとの文字コード

以下は、主にメインフレーム・オフコンなどのプロプライエタリな古いレガシーコンピュータやレガシーなシステム、特殊な環境において利用される文字コードを含む。レガシーなものとの連携を目的とする場合を除き、パソコンで利用されることがないものが多い。

| ベンダー | 文字コード | 特徴 |
| --- | --- | --- |
| マイクロソフト | cp932 | マイクロソフト版Shift\_JIS。 |
| マイクロソフト | cp10001 | マイクロソフト版MacJapanese。 |
| マイクロソフト | cp20290 | マイクロソフト版IBM CCSID 00290。 |
| マイクロソフト | cp20932 | マイクロソフト版日本語EUC。 |
| マイクロソフト | cp21027 | マイクロソフト版IBM CCSID 01027。 |
| マイクロソフト | cp50220 | マイクロソフト版ISO-2022-JPの一つ。 |
| マイクロソフト | cp50221 | マイクロソフト版ISO-2022-JPの一つ。 |
| マイクロソフト | cp50222 | マイクロソフト版ISO-2022-JPの一つ。 |
| マイクロソフト | cp51932 | Windows-31JをEUC-JPで表したもの。 |
| サン・マイクロシステムズ | cp942C | cp942の拡張。 |
| サン・マイクロシステムズ | cp943C | cp943の拡張。 |
| Apple | MacJapanese | Apple版Shift\_JIS。 |
| 富士通 | JEF(ジェフ) | メインフレーム(Mシリーズ、GSシリーズ)で利用される。JIS C 6226-1978をGR(Graphic Right)に展開し、その上方エリアに「JEF拡張漢字」というベンダ選定拡張漢字を配置。 |
| 富士通 | EUC-U90 | DS/90系UNIXサーバで利用される。JIS X 0208-1990をGRに展開し、「JEF拡張漢字」をシングルシフトのGR展開で表現。 |
| 日本電気 | JIPS(J)(ジップスジェー) | ACOS-6系メインフレームで利用される。JIS C 6226-1978の9区〜13区に特殊文字を登録し、GR領域に「G1集合」というベンダ選定拡張漢字を登録したコード。 |
| 日本電気 | JIPS(E)(ジップスイー) | ACOS-2、ACOS-4系メインフレームで利用される。JIPS(J)の上下1バイトをそれぞれEBCDICに変換して得られるコード。 |
| 日本電気 | NEC内部コード(E) | ITOS、A-VX系のオフコンで利用される。JIPS(J)の上1バイトをシフトさせたものに対して上下1バイトをそれぞれEBCDICに変換して得られるコード。 |
| 日立製作所 | KEIS(78)(ケイスナナハチ) | メインフレーム(Mシリーズ、APシリーズ)で利用される。JIS C 6226-1978をGRに展開し、その上方エリアに「拡張文字セット3」というベンダ選定拡張漢字を配置。 |
| 日立製作所 | KEIS(83)(ケイスハチサン) | メインフレーム(Mシリーズ、APシリーズ)で利用される。JIS X 0208-1983をGRに展開し、その上方エリアに「拡張文字セット3」というベンダ選定拡張漢字を配置。 |
| 日本IBM | IBM漢字(DBCS-Host) | メインフレーム(システム/360系)、AS/400系オフコン(現行製品ではIBM i搭載のPowerSystem)で利用される。JIS C 6226-1978以前に制定されたため、完全に独自の漢字表を使用。漢字部分については、Windows-31Jの第一・第二水準漢字およびIBM拡張文字との間で一対一の対応がある。 |
| 日本IBM | cp930 | メインフレームで利用される。 |
| 日本IBM | cp932 | IBM OS/2で利用される。マイクロソフトのcp932との同一性は未確認。 |
| 日本IBM | cp939 | メインフレームで利用される。 |
| 日本IBM | cp942 | IBM OS/2で利用される。 |
| 日本IBM | cp943 | IBM OS/2で利用される。 |
| 日本ユニシス | LETS-J(レッツジェー) | ユニバック系メインフレームで利用される。JIS X 0208-1983をGRに展開し、その上方および左方エリアにベンダ選定拡張漢字を配置。 |
| 日本ユニシス | JBIS(ジェイビス) | バロース系のコンピュータで利用される。 |
| 三菱電機 | JSII(ジェイエスツー) ・MELCOM漢字 | 三菱電機のメインフレームで利用される。JIS X 0208-1983をGRに展開し、その上方エリアにベンダ選定拡張漢字を配置。 |
| DEC | DEC 漢字 | ミニコンのVAX用OSであるVMSで利用される。JIS X 0208-1983をGRに展開し、その左方エリアにベンダ選定拡張漢字を配置。 |
| DEC | Super DEC 漢字 | ミニコンのVAX用OSであるVMSで利用される。JIS X 0208-1983をGRに展開し、その左方エリアにベンダ選定拡張漢字を配置。そして、シングルシフトのGR展開でJIS X 0212を表現。 |
| アドビ | 90ms-RKSJ-H | アドビ版cp932 横書き用。 |
| アドビ | 90ms-RKSJ-V | アドビ版cp932 縦書き用。 |
| アドビ | 90msp-RKSJ-H | アドビ版cp932 半角英字プロポーショナル版横書き用。 |
| アドビ | 90msp-RKSJ-V | アドビ版cp932 半角英字プロポーショナル版縦書き用。 |
| アドビ | 83pv-RKSJ-H | アドビ版漢字Talk6拡張版Shift\_JIS 横書き用。 |
| アドビ | 90pv-RKSJ-H | アドビ版MacJapanese 横書き用。 |
| アドビ | Add-RKSJ-H | アドビ版富士通FMR拡張版Shift\_JIS 横書き用。 |
| アドビ | Add-RKSJ-V | アドビ版富士通FMR拡張版Shift\_JIS 縦書き用。 |
| アドビ | Ext-RKSJ-H | アドビ版NEC拡張版Shift\_JIS 横書き用。 |
| アドビ | Ext-RKSJ-V | アドビ版NEC拡張版Shift\_JIS 縦書き用。 |

### その他の文字コード

- 大漢和辞典 - 日本で漢字の収録がもっとも多い辞典。大漢和辞典の漢字番号が漢字の同定識別に使われることがある。
  - 今昔文字鏡 - 諸橋大漢和の重複などを指摘している。
  - TRONコード - 今昔文字鏡を二次利用している。
- 官公庁
  - 戸籍統一文字(戸籍統一文字番号) - 日本の戸籍システムで使用される文字。
  - 住基統一文字(住基ネット統一文字コード) - 日本の住民基本台帳ネットワークシステムで使用される住民基本台帳ネットワーク統一文字を符号化したもの。
  - 登記統一文字(登記統一文字番号) - 日本の登記情報システムで使用される文字(戸籍統一文字と登記固有文字からなる)。
  - MJ文字(MJ文字図形名) - 日本の文字情報基盤の文字、IPAの文字情報基盤整備事業で整備された文字集合(戸籍統一文字と住基統一文字をもとに整備)。
  - 入管正字(入管正字コード) - 日本の在留カードおよび特別永住者証明書の氏名に使用できる漢字。
- デジタル放送
  - ARIB外字 - 日本のARIB STD-B24にある文字符号化。
- 企業・団体のコード
  - 筆まめ人名外字 - 日本の筆まめ社が自社ソフト用に作成したコード。
  - JTBコード - 日本のJTBが自社の客室予約システムTRIPSで使用していた漢字コード。
  - コード会のコード(案) - 日本のコード会により作成されたコード。