This page was written in 2000, when
UTF8_STRING was being
initially deployed. Since then, support for
become widespread. In particular, anything claimed about XFree86 still
applies to X.Org, and all recent toolkits have full support
As far as I know, the draft provided below is still the only
authoritative specification of
UTF8_STRING is a new X11 atom currently in the process of
being standardised by X.Org.
UTF8_STRING allows seamless interchange of international
textual data between X11 clients; its main application is selection
interchange (cut and paste).
UTF8_STRING was carefully designed to preserve
compatibility with existing X11 clients; a
UTF8_STRING-enabled client will use
interchange with other new clients, and fall back to
COMPOUND_TEXT when speaking to older clients.
UTF8_STRING support should be provided by the widget set
(user-interface library) that you are using, and hence be completely
transparent to the programmer. You need to be aware of
UTF8_STRING only if you write a new widget that uses raw Xlib
or Xt functions to access the selection.
UTF8_STRING is currently documented in this
A lot of support for
UTF8_STRING is included in the XFree86 libraries
since version 4.2 (most of this work was done by Bruno Haible).
Thanks to these extensions, adding
UTF8_STRING support to an
existing clients can be done in a few lines of code.
Notable changes include:
XICCEncodingStyleenumeration type has been extended with a
XUTF8StringStylemember which represents
UTF8_STRING; this includes
XUTF8StringStyleas the property style; this includes
In addition, a number of UTF-8 analogues to existing APIs have been
included; these are
as well as
Many X11 clients fully support
UTF8_STRING for selection
interchange; this includes:
XTerm(see also the manual page);
In order to conveniently insert arbitrary BMP characters into all
properly internationalised X11 clients (including, to a certain
extent, those that do not support
UTF8_STRING), you may want
to use the ucm
For more information about Unicode support under Free Unix-like operating systems, please consult Markus Kuhn's Unicode FAQ.
Back to my software page.