UTF-8 ロケールでは、複数のフォントを組み合わせて各コードポイントのグリフを表示させています。このため、1 つのコードポイントに対して複数のフォントのグリフが対応する場合があります。ja_JP.UTF-8 では、以下の表に示す優先順位でフォントを使用するように実装されています。
キャラクタセット |
フォント |
---|---|
ISO8859-1:GL(ASCII) |
JISX0201.1976-0 |
ISO8859-1:GR |
ISO8859-1 |
ISO8859-5:GR |
ISO8859-5 |
ISO8859-7:GR |
ISO8859-7 |
ISO8859-2:GR |
ISO8859-2 |
ISO8859-4:GR |
ISO8859-4 |
ISO8859-9:GR |
ISO8859-9 |
ISO8859-15:GR |
ISO8859-15 |
JISX0208.1983-0 |
JISX0208.1983-0 |
JISX0201.1976-0:GR |
JISX0201.1976-0 |
JISX0212.1990-0:GR |
JISX0212.1990-0 |
KSC5601.1992-3:GLGR |
KSC5601.1992-3 |
GB2312.1980-0:GR |
GB2312.1980-0 |
BIG5-1:GLGR |
BIG5-1 |
TIS620.2533-0:GR |
TIS620.2533-0 |
ISO8859-6:GR |
ISO8859-6 |
ISO8859-8:GR |
ISO8859-8 |
たとえば、U+0410 (Cyrillic Capital Letter A) は、ISO8859-5 と JISX0208.1983 など複数のフォントにグリフが存在しますが、上記のルールによって ISO8859-5 のフォントが実際に使用されます。また、CKJ Unified Ideographs エリアにある漢字で使用されるフォントは、JISX0208.1983 -> JISX0212.1990 -> KSC5601.1992-3 -> GB2312.1980 -> BIG5-1 の優先順位で使用されます。
なお現時点では、UTF-8 のコードポイントと使用するフォントの情報はシステム側でハードコードされており、ユーザーがカスタマイズすることはできません。
ASCII (Basic Latin) 領域 (U+21 - U+7E) では、ISO8859-1 フォントではなく、JISX0201.1976 フォントが使用されます。これは、ja_JP.UTF-8 ロケールでもっとも使用頻度が高いと思われる ASCII と漢字の組み合わせを表示した場合、フォントのバランスが悪くなるのを避けるためです。ただしこのために、逆斜線 (U+5C) に円記号のグリフが使われるという問題があります。この問題を避けるには、次の設定を行なってください。
/usr/openwin/lib/locale/ja_JP.UTF-8/XLC_LOCALE の以下の次の行
# fs0 class (7 bit ASCII) fs0 { charset ISO8859-1:GL # font ISO8859-1:GL; JISX0201.1976-0:GL font JISX0201.1976-0:GL; ISO8859-1:GL }
を以下のように変えてください (5 行目をコメントアウトし、4 行目のコメントを外します)。
# fs0 class (7 bit ASCII) fs0 { charset ISO8859-1:GL font ISO8859-1:GL; JISX0201.1976-0:GL # font JISX0201.1976-0:GL; ISO8859-1:GL }
設定が終わったら、Solaris CDE セッションから一度ログアウトし、再度ログインしてください。