Re: Displaying Plane 1 characters on X11

From: Markus Kuhn (
Date: Mon Nov 16 1998 - 02:38:15 EST

Roman Czyborra wrote on 1998-11-08 13:07 UTC:
> X11 fonts are limited to 16 bits because there is no larger index type
> than the XChar2b used by XDrawString16(). Hence we will need separate
> fonts for each new plane.

>Wouldn't the best XLFD be the following?
> *-iso10646-1 UCS Plane +00 (Basic Multilingual Plane)
> *-iso10646-01 UCS Plane +01 (Etruscan, Music, etc.)
> *-iso10646-02 UCS Plane +02
> *-iso10646-03 UCS Plane +03

This looks like a very ugly hack to me, and not at all like the
desirable final solution. Unicode is NOT about replacing a world in
which we switch between 8-bit fonts by a world in which we switch
between 16-bit fonts! The real solution is obviously to introduce
something like a XDrawString32() or better a XDrawString_UTF8() (may be
in the context of a general mb string support) into Xlib and to add --
if necessary -- a proper X11 protocol extension (there are
well-established mechanisms for this). The font mechanisms of X11 need
extensive extensions anyway, as at the moment not even ISO 10646-1 is
properly supported (combining characters, etc.). The X11 architecture
has already provisions for such extensions (X input/output methods,
etc.), someone just has to implement the required functionality within
the framework of these.

X11 is currently only suitable for an ISO 10646-1 Level-1
implementation, and the required work to get more Unicode support is
IMHO far more extensive than just introducing a XLFD naming convention.


Markus G. Kuhn, Computer Laboratory, University of Cambridge, UK
Email: mkuhn at,  WWW: <>

This archive was generated by hypermail 2.1.2 : Tue Jul 10 2001 - 17:20:43 EDT