文字コード
文字コード︵もじコード、英: 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」を参照
Unicode文字符号化モデル[1]では、文字コードは以下の4段階に分けられる。
抽象文字集合 ︵ACR︶
符号化の対象とする順序のない文字の集合。ただし一般的な﹁文字﹂とは異なる場合があり、書記素と混同するべきではない[2]。
符号化文字集合︵CCS︶
抽象文字集合を非負整数に対応させたもの。この非負整数の範囲を符号空間、各値を符号位置といい、抽象文字は対応後、符号化文字となる[3]。抽象文字は複数の符号化文字に対応されることもある︵異体字セレクタ︶[4]。Unicodeでは代用符号位置・非文字符号位置・未割り当て符号位置があるため、すべての符号位置が抽象文字と対応しているわけではない[5]。
文字符号化形式︵CEF︶
符号化文字集合の非負整数を符号単位列に変換する方法。文字符号化形式によってはひとつの符号化文字が複数の符号単位になる場合がある︵サロゲートペア︶。これを含め、文字により異なる長さの符号単位列となる文字符号化形式を可変幅、どの文字を変換しても同じ長さの符号単位列になるものを固定幅という。文字符号化形式はコンピュータ中に実際にデータとして文字を表現することを可能にする。
文字符号化方式︵CES︶
符号単位列をバイト列に直列化する方法。符号単位が8ビットより大きい場合はエンディアンが関係してくる。
その後、バイト列をgzipなどで圧縮したり、7ビット伝送路に通すためBase64、uuencode、BinHex、Quoted-printableなどで変換することがあるがこれらは文字コードの範囲外である。
類似の用語[編集]
コードセット この語はたとえば、ソフトウェアの実装において、任意の文字コードが扱えるよう実装すること︵たとえばruby 1.9のStringオブジェクト︶を指してコードセット独立︵CodeSet Independent, CSI︶といったように使われる[6]。 キャラクタセット MIMEではキャラクタセット︵英語: charsetまたはcharacter set︶という概念が用いられる。言葉通りには﹁文字集合﹂であるが、実際に意味しているものは文字コードに近い。 この﹁キャラクタセット﹂は﹁オクテットの並びを文字の並びに変換する方式﹂などと定義されている[7]。MIMEで実現する電子メールメッセージなどの処理を主眼に置いた概念である。 インターネット上で用いることのできる﹁キャラクタセット﹂の登録と公開はIANAが行っている︵﹁外部リンク﹂参照︶。 文字マップ Unicode文字符号化モデルでは、文字列をバイト列に変換する4段階の操作を総称して文字マップ︵英: character map; CM︶と呼ぶ[8]。 コードページ IBMやマイクロソフトは独自に文字コードに番号︵コードページ︶を振って管理している。 エンコーディング XMLにおいては、文字コードの宣言としてencodingという用語を用いている。外字[編集]
詳細は「外字」を参照
外字とは表外字︵規格表の外の文字︶の略であり、ユーザがデザインして用いるユーザ定義文字や、メーカーなどが定義した環境依存文字︵いわゆる機種依存文字︶もしくはベンダ拡張漢字のことを指す。
外字というユーザが独自に文字を登録できる領域がある文字コードは複数存在する。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にない文字を集めた文字リスト[9]
ベンダごとの文字コード[編集]
以下は、主にメインフレーム・オフコンなどのプロプライエタリな古いレガシーコンピュータやレガシーなシステム、特殊な環境において利用される文字コードを含む。レガシーなものとの連携を目的とする場合を除き、パソコンで利用されることがないものが多い。ベンダー | 文字コード | 特徴 |
---|---|---|
マイクロソフト | 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。 |
富士通 | メインフレーム(Mシリーズ、GSシリーズ)で利用される。JIS C 6226-1978をGR(Graphic Right)に展開し、その上方エリアに「JEF拡張漢字」というベンダ選定拡張漢字を配置。 | |
富士通 | EUC-U90 | DS/90系UNIXサーバで利用される。JIS X 0208-1990をGRに展開し、「JEF拡張漢字」をシングルシフトのGR展開で表現。 |
日本電気 | ACOS-6系メインフレームで利用される。JIS C 6226-1978の9区〜13区に特殊文字を登録し、GR領域に「G1集合」というベンダ選定拡張漢字を登録したコード。 | |
日本電気 | ACOS-2、ACOS-4系メインフレームで利用される。JIPS(J)の上下1バイトをそれぞれEBCDICに変換して得られるコード。 | |
日本電気 | NEC内部コード(E) | ITOS、A-VX系のオフコンで利用される。JIPS(J)の上1バイトをシフトさせたものに対して上下1バイトをそれぞれEBCDICに変換して得られるコード。 |
日立製作所 | メインフレーム(Mシリーズ、APシリーズ)で利用される。JIS C 6226-1978をGRに展開し、その上方エリアに「拡張文字セット3」というベンダ選定拡張漢字を配置。 | |
日立製作所 | メインフレーム(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で利用される。 |
日本ユニシス | ユニバック系メインフレームで利用される。JIS X 0208-1983をGRに展開し、その上方および左方エリアにベンダ選定拡張漢字を配置。 | |
日本ユニシス | バロース系のコンピュータで利用される。 | |
三菱電機 | ・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 縦書き用。 |