|This module converts keysym values into the corresponding ISO 10646-1 (UCS, Unicode) values. The array keysymtab contains pairs of X11 keysym values for graphical characters and the corresponding Unicode value. The function keysym2ucs() maps a keysym onto a Unicode value using a binary search, therefore keysymtab must remain SORTED by keysym value. The keysym -> UTF-8 conversion will hopefully one day be provided by Xlib via XmbLookupString() and should ideally not have to be done in X applications. But we are not there yet. We allow to represent any UCS character in the range U+00000000 to U+00FFFFFF by a keysym value in the range 0x01000000 to 0x01ffffff. This admittedly does not cover the entire 31-bit space of UCS, but it does cover all of the characters up to U+10FFFF, which can be represented by UTF-16, and more, and it is very unlikely that higher UCS codes will ever be assigned by ISO. So to get Unicode character U+ABCD you can directly use keysym 0x1000abcd. NOTE: The comments in the table below contain the actual character encoded in UTF-8, so for viewing and editing best use an editor in UTF-8 mode. Author: Markus G. Kuhn <email@example.com>, University of Cambridge, June 1999 Special thanks to Richard Verhoeven <firstname.lastname@example.org> for preparing an initial draft of the mapping table. This software is in the public domain. Share and enjoy!
|This module converts keysym values into the corresponding ISO 10646-1 (UCS, Unicode) values.