符号化文字集合と文字符号化方式
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/11/12 07:28 UTC 版)
「文字集合」の記事における「符号化文字集合と文字符号化方式」の解説
ASCIIやISO/IEC 8859のような符号化文字集合はそれ単体で運用されることが多いが、EUC-JPやShift_JIS、UTF-8のように2つ以上の符号化文字集合を組み合わせたり変形したりして運用される文字コードがある。そこで、符号化文字集合を組み合わせて運用する方式を指して文字符号化方式という言葉が使われることがある。 ある文字集合に含まれる文字を用いて記述した同一の文字列であっても、使用する文字符号化方式が異なれば、異なるバイト列となる。また、異なる文字符号化方式の文字列データであっても、基となる文字集合が同一であれば、文字の欠落無く相互変換が可能である。基となる文字集合が異なっていても、変換元の文字集合が、変換後の文字集合の部分集合であれば、欠落は発生しない。ただし、部分集合であっても、符号化文字集合における文字の符号の並びが異なる場合もあり、そのような場合は巨大な変換表が必要となる(例えば、JIS X 0208はUCS-2の部分集合であるが、符号の並びは全く異なる)。ただし、近年のOSでは、標準的な機能として変換表を持っていることも多く(WindowsのMultiByteToWideChar API、UNIXのlibiconv等)、アプリケーションが独自に変換表を持つ必要はあまりない。逆に、部分集合の関係にない文字集合へ変換した場合、欠落する文字が発生し、中黒点等で置き換えられたり、不適切なプログラムであれば文字化け等が発生する(ただし、同様の現象は、フォントが原因の場合もあり、文字集合の変換が原因とは即時には判断できない)。 文字符号化方式を適用する際に、複数の文字集合を組み合わせたり、文字集合の一部をベンダーが独自に置き換えることもあり、互換性問題の原因となりやすい。例えば、WindowsとMacintoshで作成されたShift_JIS文書では、それぞれ基となる文字集合にベンダーが独自の修正を加えているため、完全な互換性は無い(例えば丸付き数字と括弧付き曜日など)。他にも、文字集合の僅かな差異により問題が起きやすい例は、「~」と「‾」、「\」と「¥」などである。 ISO/IEC 646, ISO/IEC 8859, ISO/IEC 2022 (JIS X 0202), JIS X 0201, JIS X 0208, JIS X 0213等の定義では「符号化文字集合」と「符号」とは同義であり、交代可能な用語とされるが、UnicodeやIABモデルでは異なった意味で同じ用語が使われていることがあるため、解釈が混同されることがある。また、文字集合の似た用語としてMIME等で利用されるIANAのcharsetがあるが、charsetは符号化文字集合と文字符号化方式を合わせた概念であり、名称と実態が一致していない。
※この「符号化文字集合と文字符号化方式」の解説は、「文字集合」の解説の一部です。
「符号化文字集合と文字符号化方式」を含む「文字集合」の記事については、「文字集合」の概要を参照ください。
符号化文字集合と文字符号化方式
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/01/11 02:08 UTC 版)
「文字符号化方式」の記事における「符号化文字集合と文字符号化方式」の解説
符号化文字集合と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-JP・Shift_JISがある。 ISO-2022-JPは、JIS X 0208の文字に対応付けた1~94の区点を、それぞれ2116~7E16の範囲の1バイト、計2バイトで表す。さらに、エスケープ・シーケンスを使い、ASCIIやJIS X 0201など別の文字集合に切り替えることができる。このように、1つのCESが使う符号化文字集合は、1つとは限らない。 ほとんどの場合、ISO-2022-JPのように符号化文字集合とバイト列の対応は単純であるが、常にそうだとは限らない。Shift_JISでは、JIS X 0208文字集合を、複雑な計算式により、2バイトで表現できる000016~FFFF16のうちJIS X 0201と競合しない長方形の領域に詰め込んでいる。
※この「符号化文字集合と文字符号化方式」の解説は、「文字符号化方式」の解説の一部です。
「符号化文字集合と文字符号化方式」を含む「文字符号化方式」の記事については、「文字符号化方式」の概要を参照ください。
- 符号化文字集合と文字符号化方式のページへのリンク