トップQs
タイムライン
チャット
視点
文字コード
テキスト文字を表現するために、所定のデジタル値の集合を使用するシステム ウィキペディアから
Remove ads
文字コード(もじコード、英: character encoding)とは、識別番号を用いて文字などの記号を表す規則である。一般的に、通信技術やコンピュータで使用されるもを指す。文字エンコード[1]または文字エンコーディング[2]とも呼ばれる[3]。
概説
コンピュータや通信などでは、情報は全て二進数のデジタルデータ(1と0の数値の列)形式で表されている。そのため、文字などを直接的に表現・記録することはできない。データを文字として扱うためには、各文字に通し番号(二進数からなる数値)を割り当て、その対応規則から文字情報を参照する体系が必要である。この体系が文字エンコードである。
文字エンコードで定義される文字は、キャラクタまたは符号化文字(英:coded character)[4]と呼ばれる。キャラクタは、自然言語の文字、数字、句読点、その他の記号、そして表示に関わる要素(制御文字)などが含まれる。体系内で登録される全てのキャラクタは符号化文字集合(英:coded character set )と呼ばれ、キャラクタに対応している数値は符号値(英:coded character)と呼ばれる[4]。
例えば、文字エンコードの一つUTF-8の場合、英文字「A」は8ビット値「01000001」と対応(紐付け)してる。コンピュータファイル内では、情報はこのビット値で管理・保存されているが、テキストエディタなどのアプリケーションでファイルを読み込む(この際、手動か自動でUTF-8の文字エンコードが選択される)と、数値は変換され画面上で文字として表示される。
現在、ASCII、ISO/IEC 8859、Unicode(UTF-8およびUTF-16)などの文字エンコードが使用されている。その中でも、国際規格として策定されたUnicodeが最も普及している。2024時点、ウェブで使用されている文字エンコードの98%以上がUTF-8である[5]。
Remove ads
歴史
1870年代にはフランスの電信技術者のエミール・ボドーが、5ビットと文字・記号類を対応させるコードを発明し、1876年に、そのコードを用いる電信装置の特許をフランスで取得した(この装置に使われている5ビットのコードがBaudot Code(ボドー・コード)として知られるようになった)。
1963年には、アメリカの情報通信用の文字コードとして7ビットのASCII(アスキー、英: American Standard Code for Information Interchange の略)がアメリカ規格協会(ASA)で制定された。1964年にはIBM社がSystem/360とともにEBCDICという文字コード、4ビットのBCDを8ビットに拡張した文字コードを発表した。
類似の用語
文字エンコーディングに関わる用語は頻繁に誤解・誤用される[6]。下記では、用語の実際の使われ方と意味を紹介する。
文字エンコーディング/文字エンコード
「文字コード」という呼称は、頻繁に「符号値」と同じ意味で用いられる。つまり、文字と番号を対応させる体系だけではなく、"文字(character)コード(値)"という名称に沿った、"文字に与えられた数値・番号そのもの"を指した言葉としても使用されている。
その一方で、W3Cなどでは、文字コードを「文字エンコーディング」と訳している。これは英語「character encoding」の直訳である[2]。また、IBMは「文字エンコード」という翻訳も使用している[1]。
コードセット
この語はたとえば、ソフトウェアの実装において、任意の文字コードが扱えるよう実装すること(たとえばruby 1.9のStringオブジェクト)を指してコードセット独立(CodeSet Independent, CSI)といったように使われる[7]。
キャラクタセット
MIMEではキャラクタセット(英語: charsetまたはcharacter set)という概念が用いられる。言葉通りには「文字集合」であるが、実際に意味しているものは文字コードに近い。 この「キャラクタセット」は「オクテットの並びを文字の並びに変換する方式」などと定義されている[8]。MIMEで実現する電子メールメッセージなどの処理を主眼に置いた概念である。 インターネット上で用いることのできる「キャラクタセット」の登録と公開はIANAが行っている(「外部リンク」参照)。
文字マップ
Unicode文字符号化モデルでは、文字列をバイト列に変換する4段階の操作を総称して文字マップ(英: character map; CM)と呼ぶ[9]。
コードページ
外字
→詳細は「外字」を参照
外字とは表外字(規格表の外の文字)の略であり、ユーザがデザインして用いるユーザ定義文字や、メーカーなどが定義した環境依存文字(いわゆる機種依存文字)もしくはベンダ拡張漢字のことを指す。
外字というユーザが独自に文字を登録できる領域がある文字コードは複数存在する。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区外の領域も埋まるため、外字を入れることが可能な領域がなくなった。
Remove ads
文字コードの一覧(一部)
要約
視点
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バイト系文字コードは、俗に「全角文字」と呼ばれることもある。
文字符号化方式と文字コード(キャラクタセット)
- 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-KR(RFC 1557、KS X 1001対応)
- ISO-2022-JP(RFC 1468、俗に「JISコード」と呼ばれる文字コード。JIS X 0208対応)
- 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対応)
- EUC-TW(CNS 11643対応)
- EUC-JP(JIS X 0208 対応)
- シフト符号化表現の文字符号化方式を用いた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対応)
- Shift_JIS(JIS X 0208対応)
- その他の文字符号化方式を用いた7ビットの文字コード。
大規模文字集合
→「大規模文字セット」を参照
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 の文字符号化方式
印刷業界の文字集合
印刷業界においては、公的な文字コード規格では包摂されている異体字やグリフの相違を厳密に区別したいというニーズが強く存在する。そのため、そのようなニーズに応える文字集合が企業主導で策定されている。一般的な情報交換に用いられることはない。
- 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
ベンダごとの文字コード
以下は、主にメインフレーム・オフコンなどのプロプライエタリな古いレガシーコンピュータやレガシーなシステム、特殊な環境において利用される文字コードを含む。レガシーなものとの連携を目的とする場合を除き、パソコンで利用されることがないものが多い。
その他の文字コード
Remove ads
脚注
参考文献
関連項目
外部リンク
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads