結合文字

結合文字(けつごうもじ、英語: combining character)とは、文字コードにおいて先行する文字と組み合わせるための図形文字をいう。ダイアクリティカルマークや、仮名の結合可能な濁点半濁点ヘブライ文字ニクダーアラビア文字シャクルブラーフミー系文字の母音記号などが結合文字に属する。異体字セレクタも結合文字の一種である。

Unicode

[編集]

Unicodeでは、結合文字は以下の3種類のいずれかに属する[1]

  • 前進を伴う結合記号 (Spacing combining mark, Mc) - デーヴァナーガリー文字の母音 ā i ī などの記号。基底文字の左に置かれることもある。
  • 前進を伴わない記号 (Nonspacing mark, Mn) - ダイアクリティカルマークなど
  • 囲み記号 (Enclosing mark, Me) - 結合用の円・四角など

結合文字は先行する基底文字(非結合文字)と組み合わせて結合文字列(combining character sequence, CCS)を作る。結合文字は複数指定可能であり、通常はたとえば上につく結合文字が複数ある場合は上へ上へと積み重ねられるが、結合文字の種類によっては異なる表示がなされることもある[2]

結合文字だけを単独で表したい場合は、ノーブレークスペース (U+00A0) を基底文字にすることができる[3]

正規化

[編集]

Unicode には合成済み文字も数多く定義されている。したがって、おなじ文字を表現するのに、合成済み文字を使うか、基底文字+結合文字を使うかで異なる表現が可能である。

例: â は U+00E2 (latin small letter a with circumflex) でも、U+0061 U+0302 (latin small letter a + combining circumflex accent) でも表すことができる。

また、複数の結合文字を使う場合、その順序が異なっていても同じ文字を表すことがある。

同じ文字が異なる符号で表現されると脆弱性の問題が発生することがある[4]。符号化表現を統一するために正規化することができる[5]

ヴィラーマ

[編集]

ブラーフミー系文字ヴィラーマも結合文字(Mn)に属し、実際に先行する基底文字に記号として加えられることもあるが、通常は先行する文字と後続する文字を結合して合字を作る。合字ではなく強制的に基底文字+ヴィラーマを表示させたい場合は、ヴィラーマの後ろにゼロ幅非接合子 (U+200C) を置く。また、合字を作るための結合形を表示させる場合には、ヴィラーマにゼロ幅接合子 (U+200D) を置く[6]

結合文字でないもの

[編集]

Unicode で分数を構成するための斜線(fraction slash, U+2044)やハングルの字母(U+11xx)は結合文字としては扱われず、独自の規則に従う。

脚注

[編集]
  1. ^ JIS X 0221:2014 4.14
  2. ^ JIS X 0221:2014 20.5
  3. ^ JIS X 0221:2014 20.1。なお、初期の規格ではスペース (U+0020) だったが、Unicode 4.1 で変更された
  4. ^ Unicode Technical Report #36: Unicode Security Considerations, The Unicode Consortium, http://unicode.org/reports/tr36/#TableCombiningMarkOrderSpoofing 
  5. ^ Unicode Standard Annex #15: Unicode Normalization Forms, The Unicode Consortium, https://www.unicode.org/reports/tr15/tr15-44.html 
  6. ^ Unicode Standard 9.0 12.1 ほか

参考文献

[編集]
  • 『国際符号化文字集合(UCS)JIS X 0221:2014 (ISO/IEC 10646:2012)』日本規格協会。 

関連項目

[編集]