CCSIDとは - わかりやすく解説 Weblio辞書 (original) (raw)

文字符号化方式(もじふごうかほうしき、: character encoding scheme、CES)とは、符号化文字集合文字に対応付けた非負整数値を、実際にコンピュータが利用できるデータ列(通常、バイト列)に変換する符号化方式

文字符号化体系文字符号化スキーム (CCS) とも言う。文字について述べていることが明確なときは、単に符号化方式、またIBMの用語ではコード化体系 (ES) などとも言う。

この用語はUnicodeIETF標準などで用いているが、ISO/IECJISの標準では用いず「符号化文字集合の構造」あるいは「文字符号の構造及び拡張法」として扱われている。この用語の定義は、世界の文字コード規格とは必ずしも合致しないことがある。

目次

符号化文字集合と文字符号化方式

符号化文字集合とCESの関係を示すため、JIS X 0208を例にとる。なお、話を簡単にするため、附属書は無視する。

JIS X 0208は、符号化文字集合であり、文字の表と、各文字に対応付けられた1区1点~94区94点の番号(区点)と、それに対応したビット組合せからなる。例えば、「亜」という漢字の区点番号は16区1点であり、対応するビット組合せは x0110000 x0100001 の2バイトである (xは呼出し先がGLであれば0、GRであれば1)。こうした符号化文字集合について、他の符号化文字集合と組み合わせたり、計算によって変形したりする方式を、文字符号化方式 (CES) と呼ぶことがある。また、特定の符号化文字集合とCESとの組み合わせによって実現する文字列の表現を符号化表現と呼ぶことがある (符号化表現は**キャラクタセット**とほぼ同義である)。

1つの符号化文字集合に適用できるCESが複数ある場合、符号化表現も1つではない。JIS X 0208の場合、主要なものとして、ISO-2022-JP (RFC1468符号化表現)・EUC-JPShift_JISがある。

ISO-2022-JPは、JIS X 0208の文字に対応付けた1~94の区点を、それぞれ2116~7E16の範囲の1バイト、計2バイトで表す。さらに、エスケープ・シーケンスを使い、ASCIIJIS X 0201など別の文字集合に切り替えることができる。このように、1つのCESが使う符号化文字集合は、1つとは限らない。

ほとんどの場合、ISO-2022-JPのように符号化文字集合とバイト列の対応は単純であるが、常にそうだとは限らない。Shift_JISでは、JIS X 0208文字集合を、複雑な計算式により、2バイトで表現できる000016~FFFF16のうちJIS X 0201と競合しない長方形の領域に詰め込んでいる。

文字符号化形式と文字符号化スキーム

Unicodeでは、文字符号化スキーム (CES) を、文字符号化形式 (CEF) と、バイト直列化等の2つの段階に分けて標準化している[1]

符号化文字集合 符号化形式(CEF) 符号化スキーム(CES)
Unicode文字集合 UTF-8 UTF-8
UTF-16 UTF-16BE
UTF-16LE
UTF-16
UTF-32 UTF-32BE
UTF-32LE
UTF-32

Unicodeでは、Unicode符号化文字集合のU+0000〜U+10FFFFの各符号位置に、Unicodeスカラ値という非負整数値を対応付けている。CEFは、このUnicodeスカラ値を符号単位列に変換する。UnicodeのCEFには、UTF-8UTF-16UTF-32があり、これらが使う符号単位はそれぞれ、符号なし8ビット整数[2]・符号なし16ビット整数・符号なし32ビット整数である。これらの文字符号化形式はプログラムにおける文字の内部表現として実装される。

しかし、情報交換のためファイルの読み書きや通信を行う場合には、符号単位列をバイト列にする必要があり、8ビット以外の符号単位列をバイト列にするには、バイト順序(エンディアン)を決める必要がある。そのためCESでは、CEFに加え、バイト直列化の手続きを決める、つまり、エンディアンを指定するかまたはエンディアンを記述する方法を規格化している。(各CESのバイト直列化の具体的な内容については、UTF-16#符号化スキームを参照)

Unicodeで定められたCEFとCESは、表のものがある(ただし、Unicode技術標準[3]SCSU (UTS 6) が、Unicode技術報告[3]UTF-EBCDIC (UTR 16) とCESU-8 (UTR 26) が、Unicode技術ノート[4]でBOCU-1 (UTN 6) が、その他、ISO/IEC標準やRFCで、Unicode文字集合を使ったCEFやCESを規格化している)。同じ名称のCEFとCESがあり、これらを区別するときは、「UTF-16符号化形式」「UTF-16符号化スキーム」のように呼ぶ。一般にUTF-16と呼ばれるものは、UTF-16符号化形式に対応する3つのCESの総称である。なお、UTF-8符号化形式とUTF-8符号化スキームは実質的に同じものだが、便宜上、分けている。

Unicode以外でも、原理的にはCEFとCESを区別して論ずることができる。しかし、ほとんどの場合8ビット整数を符号単位とするため、UTF-8の場合と同様に区別する意味は少ない。たとえば、Shift_JISの文字データを扱うプログラムは、8ビット整数を符号単位とするマルチバイト文字の文字データの処理を行っているため、ファイルの読み書きや通信などでバイト直列化処理をあらためて行うことはない。

キャラクタセット

文字コード#コードセット」を参照

脚注

[脚注の使い方]

  1. ^ 本節の用語の日本語表記は次に従った。“Unicode Terminology English - Japanese”. Unicode, inc. 2009年12月31日閲覧。
  2. ^ ここでの「符号」とは正負のことである。
  3. ^ a b 詳細は次を参照。About Unicode Technical Reports - Types of Unicode Technical Reports: UTR, UTS, UAX, Unicode, Inc.
  4. ^ 詳細は次を参照。About Unicode Technical Notes, Unicode, Inc.

参考資料

関連項目

外部リンク

文字コード
カテゴリ
日本語用の文字コード JIS規格符号化文字集合 JIS X 0201 JIS X 0208 JIS X 0212 JIS X 0213 JIS X 0221日本文字部分レパートリ) 文字符号化方式 ISO-2022-JP EUC-JP Shift_JIS Shift_JISX0213 Shift_JIS-2004 EUC-JISX0213 EUC-JIS-2004 ISO-2022-JP-3 ISO-2022-JP-2004 漢字シフトコード 文字一覧 JIS X 0213非漢字一覧 JIS X 0213漢字一覧の1面 JIS X 0213漢字一覧の2面 JIS以外の公規格 MJ文字 入管正字 ARIB外字 ARIB外字の追加記号一覧 メーカーの規格符号化文字集合 IBM拡張文字 マイクロソフト標準キャラクタセット Adobe-Japan1 iモード絵文字 EZweb絵文字 SoftBank絵文字 今昔文字鏡 JIPS EBCDIC GT書体 KEIS IBM漢字システム レコード用文字符号 ビブロス外字 文字符号化方式 Microsoftコードページ932 MacJapanese JEF漢字コード U-PRESS
日本語を含む多言語文字集合 UnicodeISO/IEC 10646JIS X 0221基本多言語面 追加面 追加多言語面 追加漢字面 第三漢字面 追加特殊用途面 私用面 文字符号化方式 UTF-8 UTF-16/UCS-2 UTF-32/UCS-4 UTF-7 UTF-EBCDIC GB 18030 SCSU BOCU-1 文字一覧 Unicode一覧 Unicode一覧表 Unicode6.0の携帯電話の絵文字の一覧 UnicodeのEmojiの一覧 TRONコード TRONコード
日本語以外用の文字集合 初期の文字コード ASCII Baudot Code ISO/IEC 646 ISO/IEC 6937 T.61 ISO/IEC 8859 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -13 -14 -15 -16 書誌用 ISO 5426 ISO 5426-2 ISO 5427 ISO 5428 ISO 6438 ISO 6861 ISO 6862 ISO 9036 ISO 10585 ISO 10586 ISO 10754 ISO 11822 ANSEL MARC-8 国家標準 ArmSCII CNS 11643 GOST 10859 GB 2312 HKSCS ISCII KPS 9566 KS X 1001 PASCII TIS-620 TSCII VISCII YUSCII KOI8-R KOI8-RU KOI8-U KOI8-T KOI8-CS EUC EUC-CN EUC-KR EUC-TW ISO/IEC 2022 ISO/IEC 2022 CN ISO/IEC 2022 KR CCCII MacOSコードページ Macintosh Standard Roman Character Set アラビア語 CentralEurRoman EUC-CN Big5 クロアチア語 キリル デーヴァナーガリー Dingbats ペルシャ語 ギリシア語 グジャラート語 グルムキー ヘブライ語 アイスランド語 EUC-KR ルーマニア語 MacSymbol TIS-620 トルコ語 ウクライナ語 DOSコードページ 437 720 737 775 850 852 855 857 858 860 861 862 863 864 865 866 869 KOI8 Kamenicky Mazovia MIK Iran System Windowsコードページ 874 (TIS-620) 936 (GBK) 949 (EUC-KR) 950 (Big5) 1250 1251 1252 1253 1254 1255 1256 1257 1258 1361 54936 (GB18030) EBCDIC コードページ 1(英語版) 2(英語版) 3(英語版) 4(英語版) 5(英語版) 6(英語版) 7(英語版) 8(英語版) 9(英語版) 10(英語版) 11(英語版) 12(英語版) 13(英語版) 15(英語版) 16(英語版) 17(英語版) 18(英語版) 19(英語版) 20(英語版) 21(英語版) 22(英語版) 23(英語版) 24(英語版) 25(英語版) 26(英語版) 27(英語版) 29(英語版) 30(英語版) 31(英語版) 32(英語版) 33(英語版) 34(英語版) 35(英語版) 36(英語版) 37(英語版)/1140(英語版) 37-2(英語版) 38(英語版) 39(英語版) 40(英語版) 251(英語版) 252(英語版) 254(英語版) 256(英語版) 257(英語版) 258(英語版) 259(英語版) 260(英語版) 264(英語版) 273(英語版)/1141(英語版) 274(英語版) 275(英語版) 276(英語版) 277(英語版)/1142(英語版) 278(英語版)/1143(英語版) 279(英語版) 280(英語版)/1144(英語版) 281(英語版) 282(英語版) 283(英語版) 284(英語版)/1145(英語版) 285(英語版)/1146(英語版) 286(英語版) 287(英語版) 288(英語版) 289(英語版) 290(英語版) 293(英語版) 297(英語版)/1147(英語版) 298(英語版) 300(英語版) 310(英語版) 320(英語版) 321(英語版) 322(英語版) 330(英語版) 351(英語版) 352(英語版) 353(英語版) 355(英語版) 357(英語版) 358(英語版) 359(英語版) 360(英語版) 361(英語版) 421(英語版) 423(英語版) 424(英語版)/8616(英語版)/12712(英語版) 500(英語版)/1148(英語版) 870(英語版)/1110(英語版)/1153(英語版) 871(英語版)/1149(英語版) 875(英語版)/4971(英語版)/9067(英語版) 880(英語版) 905(英語版) 924(英語版) 930(英語版)/1390(英語版) 1025(英語版)/1154(英語版) 1026(英語版)/1155(英語版) 1047(英語版) 1069(英語版) 1113(英語版) 1166(英語版) その他標準 モザイク集合 記号用 Symbol Wingdings Webdings プラットフォーム固有 ATASCII CDC display code DEC Radix-50 Fieldata GSM 03.38 HP roman8 PETSCII TI calculator character sets ZX Spectrum character set
ソフトウェア 文字コード表 (Windows) 文字パレット KCharSelect IMEパッド
区分け 外字 図形文字 制御文字 特殊文字 C0 and C1 control codes CJK統合漢字 ワイド文字 マルチバイト文字 機種依存文字
概念 コードページ 文字コード表
関連トピック CCSID charset detection ISO 6429/IEC 6429/ANSI X3.64 legacy encoding 文字化け モールス符号 6ビット文字コード 携帯電話の絵文字 機械彫刻用標準書体 サロゲートペア 異体字セレクタ フォント